A large number of bug reports received in bug tracking system causes a negative impact on software's growth and maintenance. Non-Reproducible bugs are an additional overhead on bug fixing process as certain percentage of Non-Reproducible bugs get fixed and these are difficult to detect. Their fixation can enhance the efficiency of bug fixing process. Past studies had ignored Non-Reproducible bugs while investigating bugs with varied perspectives. In this paper, we investigate characteristics of Non-Reproducible bug reports to understand their behaviour so that overall bug fixing process can be improved. We have also build machine learning models to predict fixable bugs from the set of Non-Reproducible marked bugs. We mine four large, open-source projects of Bugzilla repository and analyze Non-Reproducible bugs with different dimensions: frequency distribution, time-series analysis, active fix time, developer discussions, severity, priority and component. This study shows that there exists a significant number of Non-Reproducible bugs in each project and their occurrence follows a normal distribution with project longevity. They possess higher severity and lower priority as compared to reproducible bugs. Also, there exist specific components which are more prone to have non-reproducible bugs. We found that Non-Reproducible bugs consume more fixation time thereby affecting bug fixing processes' efficiency. The overall results suggested that efforts in Non-Reproducible bugs could be minimized by developing a fixability prediction model that can build confidence among developers. Hence, we learned 52 classifiers for prediction of fixability among NR bugs. Our results show that prediction models achieved F1-Score up to 89.2%, 93.7%, 93.8% and 98.4% for NetBeans, Eclipse, Open Office and Mozilla Firefox projects respectively.