Wichman-Hill Random Number Generator

ASA183 is a C++ library which implements a pseudorandom number generator, by Wichman and Hill.

ASA183 is Applied Statistics Algorithm 183. Source code for many Applied Statistics Algorithms is available through STATLIB.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


ASA183 is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

CPP_RANDOM, C++ programs which illustrate the use of the C++ random number generator routines.

HALTON, a C++ library which computes elements of a Halton quasirandom sequence.

NORMAL, a C++ library which computes elements of a sequence of pseudorandom normally distributed values.

RANLIB, a C++ library which produces random samples from Probability Density Functions (PDF's), including Beta, Chi-square Exponential, F, Gamma, Multivariate normal, Noncentral chi-square, Noncentral F, Univariate normal, random permutations, Real uniform, Binomial, Negative Binomial, Multinomial, Poisson and Integer uniform, by Barry Brown and James Lovato.

RNGLIB, a C++ library which implements a random number generator (RNG) with splitting facilities, allowing multiple independent streams to be computed, by L'Ecuyer and Cote.

UNIFORM, a C++ library which computes elements of a sequence of pseudorandom uniformly distributed values.

VAN_DER_CORPUT, a C++ library which computes elements of a van der Corput quasirandom sequence.


Original FORTRAN77 version by Brian Wichman and David Hill; Matlab version by John Burkardt.


  1. Pierre LEcuyer,
    Efficient and Portable Combined Random Number Generators,
    Communications of the ACM,
    Volume 31, Number 6, June 1988, pages 742-751.
  2. Brian Wichmann, David Hill,
    Algorithm AS 183: An Efficient and Portable Pseudo-random Number Generator,
    Applied Statistics,
    Volume 31, Number 2, 1982, pages 188-190.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.

Last revised on 08 July 2008.