random -package:random

Create a random Seed using an effectful source of randomness.
The same as randomR, but using a default range determined by the type:
  • For bounded types (instances of Bounded, such as Char), the range is normally the whole type.
  • For floating point types, the range is normally the closed interval [0,1].
  • For Integer, the range is (arbitrarily) the range of Int.
Pick a random element, using reservoir sampling
Pick a random element of the list.
Set random playing.
Toggle random mode.
Generate a random bytestring of length n. The PRNG is seeded from the system randomness source.
ioProperty $ ((fromIntegral n ===) . B.length) <$> random n
n > 4 ==> ioProperty $ (/=) <$> random n <*> random n
Generate a single random UUID.
Return hosts in random order.
Draw from a uniform distribution.
This module is provided for backwards compatibility, and simply re-exports Control.Monad.Random.Lazy.
The class of types for which random values can be generated. Most instances of Random will produce values that are uniformly distributed on the full range, but for those types without a well-defined "full range" some sensible default subrange will be selected. Random exists primarily for backwards compatibility with version 1.1 of this library. In new code, use the better specified Uniform and UniformRange instead.
Random monads, passing a random number generator through a computation. This version is lazy; for a strict version, see Control.Monad.Trans.Random.Strict, which has the same interface.
PRNG services See http://www.openssl.org/docs/crypto/rand.html For random Integer generation, see OpenSSL.BN
This module is for instantiating cryptographicly strong determinitic random bit generators (DRBGs, aka PRNGs) For the simple use case of using the system random number generator (Entropy) to seed the DRBG:
g <- newGenIO
Users needing to provide their own entropy can call newGen directly
entropy <- getEntropy nrBytes
let generator = newGen entropy