# Module Random.State

    module State: sig .. end

    type t

The type of PRNG states.

    val make : int array -> t

Create a new state and initialize it with the given seed.

    val make_self_init : unit -> t

Create a new state and initialize it with a random seed chosen in a system-dependent way. The seed is obtained as described in `Random.self_init`.

    val copy : t -> t

Return a copy of the given state.

    val bits : t -> int

    val int : t -> int -> int

    val full_int : t -> int -> int

    val int32 : t -> Int32.t -> Int32.t

    val nativeint : t -> Nativeint.t -> Nativeint.t

    val int64 : t -> Int64.t -> Int64.t

    val float : t -> float -> float

    val bool : t -> bool

    val bits32 : t -> Int32.t

    val bits64 : t -> Int64.t

    val nativebits : t -> Nativeint.t

These functions are the same as the basic functions, except that they use (and update) the given PRNG state instead of the default one.

    val split : t -> t

Draw a fresh PRNG state from the given PRNG state. (The given PRNG state is modified.) The new PRNG is statistically independent from the given PRNG. Data can be drawn from both PRNGs, in any order, without risk of correlation. Both PRNGs can be split later, arbitrarily many times.

- Since 5.0.0