Basic Random Number Generators
 quality requirements
 speed
 memory use
 efficient generation of random number subsequences
 using random numbers as real ones
 using random numbers as a bit stream
BRNG

Type

Description


MCG31m1

pseudorandom

A 31bit multiplicative congruential generator.

R250

pseudorandom

A generalized feedback shift register generator.

MRG32k3a

pseudorandom

A combined multiple recursive generator with two components of order 3.

MCG59

pseudorandom

A 59bit multiplicative congruential generator.

WH

pseudorandom

A set of 273 WichmannHill combined multiplicative congruential generators
(
j
= 1, 2, ... , 273 ). 
MT19937

pseudorandom

Mersenne Twister pseudorandom number generator.

MT2203

pseudorandom

A set of 6024 MersenneTwister pseudorandom number generators
(
j
= 1,...,6024). 
SFMT19937

pseudorandom

SIMDoriented Fast Mersenne Twister pseudorandom number generator.

SOBOL (with AntonovSaleev [
Ant79
] modification)

quasirandom

A 32bit Gray codebased generator producing lowdiscrepancy sequences for dimensions 1≤s≤40

NIEDERREITER (with AntonovSaleev [
Ant79
] modification)

quasirandom

A 32bit Gray codebased generator producing lowdiscrepancy sequences for dimensions 1≤s≤318.

PHILOX4X32X10

pseudorandom

A Philox4x3210 counterbased pseudorandom number generator.

ARS5

pseudorandom

A counterbased pseudorandom number generator, which uses instructions from the AESNI set. Available in IA® architectures supporting this instruction set.

ABSTRACT

pseudorandom or quasirandom, depending on the userprovided settings

Abstract source of random numbers. See
Abstract Basic Random Number Generators. Abstract Streams
section for details.

NONDETERMINISTIC

Nondeterministic

BRNG

Type

Description


MCG31m1

pseudorandom

A 31bit multiplicative congruential generator.

R250

pseudorandom

A generalized feedback shift register generator.

MRG32k3a

pseudorandom

A combined multiple recursive generator with two components of order 3.

MCG59

pseudorandom

A 59bit multiplicative congruential generator.

WH

pseudorandom

A set of 273 WichmannHill combined multiplicative congruential generators
(
j
= 1, 2, ... , 273 ). 
MT19937

pseudorandom

Mersenne Twister pseudorandom number generator.

MT2203

pseudorandom

A set of 6024 MersenneTwister pseudorandom number generators
(
j
= 1,...,6024). 
SFMT19937

pseudorandom

SIMDoriented Fast Mersenne Twister pseudorandom number generator.

SOBOL (with AntonovSaleev [
Ant79
] modification)

quasirandom

A 32bit Gray codebased generator producing lowdiscrepancy sequences for dimensions 1≤s≤40

NIEDERREITER (with AntonovSaleev [
Ant79
] modification)

quasirandom

A 32bit Gray codebased generator producing lowdiscrepancy sequences for dimensions 1≤s≤318.

PHILOX4X32X10

pseudorandom

A Philox4x3210 counterbased pseudorandom number generator.

ARS5

pseudorandom

A counterbased pseudorandom number generator, which uses instructions from the AESNI set. Available in IA® architectures supporting this instruction set.

ABSTRACT

pseudorandom or quasirandom, depending on the userprovided settings

Abstract source of random numbers. See
Abstract Basic Random Number Generators. Abstract Streams
section for details.

NONDETERMINISTIC

Nondeterministic

 Stream Initialization Subroutine. See section Random Streams and RNGs in Parallel Computation for details.
 Integer Output Generation Subroutine. Every generated integral value (within certain bounds) may be considered a random bit vector. For details on randomness of individual bits or bit groups, see Basic Random Generator Properties and Testing Results .
 Single Precision FloatingPoint Random Number Vector Generation Subroutine. The subroutine generates a real arithmetic vector of uniform distribution over the interval [a, b).
 Double Precision FloatingPoint Random Number Vector Generation Subroutine. The subroutine generates a real arithmetic vector of uniform distribution over the interval [a, b).