# 5.9 whrandom -- Pseudo-random number generator

Deprecated since release 2.1. Use random instead.

Note: This module was an implementation detail of the random module in releases of Python prior to 2.1. It is no longer used. Please do not use this module directly; use random instead.

This module implements a Wichmann-Hill pseudo-random number generator class that is also named whrandom. Instances of the whrandom class conform to the Random Number Generator interface described in section . They also offer the following method, specific to the Wichmann-Hill algorithm:

 seed( [x, y, z])
Initializes the random number generator from the integers x, y and z. When the module is first imported, the random number is initialized using values derived from the current time. If x, y, and z are either omitted or `0`, the seed will be computed from the current system time. If one or two of the parameters are `0`, but not all three, the zero values are replaced by ones. This causes some apparently different seeds to be equal, with the corresponding result on the pseudo-random series produced by the generator.

 choice( seq)
Chooses a random element from the non-empty sequence seq and returns it.

 randint( a, b)
Returns a random integer N such that `a<=N<=b`.

 random( )
Returns the next random floating point number in the range [0.0 ... 1.0).

 seed( x, y, z)
Initializes the random number generator from the integers x, y and z. When the module is first imported, the random number is initialized using values derived from the current time.

 uniform( a, b)
Returns a random real number N such that `a<=N<b`.

When imported, the whrandom module also creates an instance of the whrandom class, and makes the methods of that instance available at the module level. Therefore one can write either `N = whrandom.random()` or:

```generator = whrandom.whrandom()
N = generator.random()
```

Note that using separate instances of the generator leads to independent sequences of pseudo-random numbers.