# Directory of Pseudorandom Numbers Resources

Algorithms for generating numbers according to a particular probability distribution. For example, the two most common problems are generating integers uniformly between 1 and n, and generating real numbers uniformly between 0 and 1. Other common distributions include Gaussian and Poisson. Because most random-number-generation algorithms have no influence from the outside environment, they are inherently pseudorandom: predictable, and following a pattern, also ideally not an apparent one. Thus the quote:

"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." - John von Neumann (1951)
A classic reference on this topic, and a good starting point, is Donald Knuth's Art of Computer Programming.
"Random number generators should not be chosen at random." - Donald Knuth (1986)
Another good reference, for nonuniform random number generation in particular, is Luc Devroye's Non-Uniform Random Variate Generation (Springer-Verlag); see also his page in this category. There are also some approaches that claim to be "truly random," based on outside data like radioactive decay and white noise from deep space. However, randomness is inherently a theoretical notion, and is difficult to exhibit perfectly in real life, unless perhaps we fully master quantum mechanics.

## Resources in This Category

• #### ENT

http://www.fourmilab.ch/random/
A pseudorandom number sequence test program. Free download of C++ source code and MS-DOS executable.

• #### Frandom

http://www.billauer.co.il/frandom.html
Fast RNG for the Linux kernel. A sourceforge project.

• #### HENKOS Pseudorandom Number Generator

http://crypto.8k.com/
Presents and evaluates this generator, intended for use as a key generator for a one-time pad cipher.

• #### Netlib: Random Number Generators

http://www.netlib.org/random/
Source code for various random number generators in C and Fortran, including the well-known RANLIB library supporting many continuous and discrete probability distributions.

• #### NIST: Random Number Generation and Testing

http://csrc.nist.gov/groups/ST/toolkit/rng/
Project to develop a battery of statistical tests to detect nonrandomness in binary sequences, to produce documentation and a software implementation of these tests, and to provide guidance in the use of these tests.

• #### Pseudo Random Number Generators

http://www.agner.org/random/
Algorithms for good random number generators with theoretical discussion and software examples.

• #### Random Bots

http://www.randombots.com/
Generators for random number samples, random selection and random check number audits. Windows software for on-line purchase.

• #### Random Number Generation, Taygeta Scientific Inc.

http://www.taygeta.com/random.html
Information and articles on random number generation.

• #### Random Number Generator

http://www.saccenti.com/randomnumber/randomnumber.htm
A small, simple open-source shareware program by Scott Donato Saccenti [Win95].

• #### Random Number Generator Algorithms

http://www.gnu.org/software/gsl/manual/html_node/Random-Number-Generation.html
Documentation of algorithms in the GNU Scientific Library Reference Manual.

• #### RngPack

http://www.honeylocust.com/RngPack/
A pseudorandom number generator package for Java. Source code free under BSD licence.

• #### The pLab Project

http://random.mat.sbg.ac.at/
A server on the theory and practice of random number generation.

• #### UNURAN

http://statistik.wu-wien.ac.at/unuran/
Universal Non-Uniform RANdom number generators: a GPL library of C functions to generate nonuniform random numbers, by Josef Leydold and Wolfgang Hoermann of the University of Economics, Vienna.

## Related Categories

Thanks to DMOZ, which built a great web directory for nearly two decades and freely shared it with the web. About us