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.
A pseudorandom number sequence test program. Free download of C++ source code and MS-DOS executable.
Fast RNG for the Linux kernel. A sourceforge project.
Presents and evaluates this generator, intended for use as a key generator for a one-time pad cipher.
Source code for various random number generators in C and Fortran, including the well-known RANLIB library supporting many continuous and discrete probability distributions.
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.
Algorithms for good random number generators with theoretical discussion and software examples.
Generators for random number samples, random selection and random check number audits. Windows software for on-line purchase.
Information and articles on random number generation.
A small, simple open-source shareware program by Scott Donato Saccenti [Win95].
Documentation of algorithms in the GNU Scientific Library Reference Manual.
A pseudorandom number generator package for Java. Source code free under BSD licence.
A server on the theory and practice of random number generation.
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.
Thanks to DMOZ, which built a great web directory for nearly two decades and freely shared it with the web. About us