By best I mean the one that:
I can think of Mersenne Twister, but which variant is the best? Is there any better PRNG?
If you look for an algorithm, that passes all statistical tests, but is still fast you could try the Xorshift-Algorithm. Compared with the random library in Java it is about 30% faster and provides better results. Its Period is not as long as the Mersenne Twister's but its still decent.
The pseudorandom generators used in cryptography and universal algorithmic derandomization have not been proven to exist, although their existence is widely believed. Proofs for their existence would imply proofs of lower bounds on the circuit complexity of certain explicit functions.
The outcome of the research confirms the possibility that machine learning algorithms can be trained to predict certain PRNGs. Even when trained with a small amount of data, there is evidence that machine learning algorithms can be used to predict the values created by pseudorandom number generators.
Just a quick update, as the answers show their age: Today the Mersenne Twister is not really considered state of the art anymore (somewhat bloated, predictable given just 624 values, slow to seed, bad seeding possible, ...).
For normal applications, where good statistical properties and speed are important, consider
For cryptographic applications, where non-predictability is important, consider a cryptographically secure PRNG, such as
Note: In a previous version I stated that the Random123 algorithms are cryptographically secure, but they're not.
Similarly, for statistical tests of PRNG, nowadays the state of the art is probably
while these are historically important, but outdated:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With