The name Monte Carlo was originally introduced by Nicholas Metropolis during the Manhattan Project, because of the similarity of statistical simulation to games of chance. Methods that utilize random numbers to perform a simulation of phenomena have many applications in various disciplines. Monte Carlo became a tool to perform the most complex simulations in natural and social sciences, financial analysis, physics of turbulence, rarefied gas and fluid simulations, high-energy physics, chemical kinetics and combustion, radiation transport problems, and photorealistic rendering.
This article discusses the role of random-number generators in Monte Carlo simulations, guiding criteria for selection of appropriate random-number generators and requirements for a modern numerical library with random-number generation capabilities. It also provides a brief overview of three industrial library solutions with random-number generation capabilities and a discussion of how these requirements are implemented or not implemented there. Finally, this document discusses three examples of applications from different areas where Monte Carlo methods are widely used, focusing on various techniques for implementing efficient Monte Carlo simulation.