# Hardware random number generator Vs. Pseudo random number generator in the battlefield of Markov Chain Monte Carlo processes

I'm implementing a Markov Chain Monte Carlo process for a Quantum Monte Carlo routine, in every book and paper I've read so far the success of the routine and quality of the results strongly depends on the random number generator.

Well I've chosen to implement the code in C++ 2011, and I'm presented with a fair wide selection of pseudo random number generator engines and a non deterministic random number generator (based on the hardware random number generator that most of the modern computers have).

Which is the physical or statistical reason to chose a good random number generator?, and which is best for this purpose, a well studied pseudo random number generator engine or the (I think unpredictable) hardware random number generator?

You can see the engines available here.

• Thenks for the migration @dmckee – Oscar David Arbeláez Apr 16 '13 at 22:00

It is important to use a high quality generator, though the quality requirements depend very strongly on the application. An example of what can go wrong: in explicit solvent molecular dynamics, it is common to take time steps on the order of 1 femtosecond ($10^{-15}$ s). A generator with a period of only $2^{32}$ evaluated once per step would be similar to a radiative input with a frequency of $0.2$ MHz. If this is a physically interesting frequency for the system in question, the results would be invalid.