List of random number generators

Random number generators are important in many kinds of technical applications, including physics, engineering or mathematical computer studies (e.g., Monte Carlo simulations), cryptography and gambling (on game servers).

RNG is a gaming term that refers to the generation of random numbers. For gamers who want to experience unexpected outcomes in their games, RNG technology is ideally made for them. Based on the number that is generated using the RNG algorithm, your opponent would be attacked accordingly.

This list includes many common types, regardless of quality or applicability to a given use case.

Pseudorandom number generators (PRNGs)
The following algorithms are pseudorandom number generators.

Cryptographic algorithms
Cipher algorithms and cryptographic hashes can be used as very high-quality pseudorandom number generators. However, generally they are considerably slower (typically by a factor 2–10) than fast, non-cryptographic random number generators.

These include:


 * Stream ciphers. Popular choices are Salsa20 or ChaCha (often with the number of rounds reduced to 8 for speed), ISAAC, HC-128 and RC4.
 * Block ciphers in counter mode. Common choices are AES (which is very fast on systems supporting it in hardware), TwoFish, Serpent and Camellia.
 * Cryptographic hash functions

A few cryptographically secure pseudorandom number generators do not rely on cipher algorithms but try to link mathematically the difficulty of distinguishing their output from a `true' random stream to a computationally difficult problem. These approaches are theoretically important but are too slow to be practical in most applications. They include:
 * Blum–Micali algorithm (1984)
 * Blum Blum Shub (1986)
 * Naor–Reingold pseudorandom function (1997)

Random number generators that use external entropy
These approaches combine a pseudo-random number generator (often in the form of a block or stream cipher) with an external source of randomness (e.g., mouse movements, delay between keyboard presses etc.).


 * – Unix-like systems
 * CryptGenRandom – Microsoft Windows
 * Fortuna
 * RDRAND instructions (called Intel Secure Key by Intel), available in Intel x86 CPUs since 2012. They use the AES generator built into the CPU, reseeding it periodically.
 * True Random Number Generator using Corona Discharge.
 * Yarrow