Preply — Study more efficiently by working with a personal tutor. Get 50% off.Affiliate

Wikipedia

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). 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.).

/dev/random – 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. Yarrow RANDOM.org

See also Diceware Diehard tests – statistical test suite for random number generators Non-uniform random variate generation Hardware random number generator Random number generator attack Randomness TestU01 – statistical test suite for random number generators

References

External links SP800-90 series on Random Number Generation, NIST Random Number Generation in the GNU Scientific Library Reference Manual Random Number Generation Routines in the NAG Numerical Library Chris Lomont's overview of PRNGs, including a good implementation of the WELL512 algorithm Source code to read data from a TrueRNG V2 hardware TRNG

Tags

  • Computing-related lists
  • Mathematics-related lists
  • Pseudorandom number generators
  • Random number generation