val self_init : ?allow_in_tests:bool ->unit -> unit
Initialize the generator with a more-or-less random seed chosen in a system-dependent way. By default, self_init is disallowed in inline tests, as it's often used for no good reason and it just creates nondeterministic failures for everyone. Passing ~allow_in_tests:true removes this restriction in case you legitimately want nondeterministic values, like in Filename.temp_dir.
val bits : unit -> int
Return 30 random bits in a nonnegative integer.
before3.12.0
used a different algorithm (affects all the following functions)
val int : int -> int
Random.int bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0.
val int32 : int32 -> int32
Random.int32 bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0.
val nativeint : nativeint -> nativeint
Random.nativeint bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0.
val int64 : int64 -> int64
Random.int64 bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0.
val float : float -> float
Random.float bound returns a random floating-point number between 0 (inclusive) and bound (exclusive). If bound is negative, the result is negative or zero. If bound is 0, the result is 0.
val int_incl : int ->int -> int
Produces a random value between the given inclusive bounds. Raises if bounds are given in decreasing order.
val int32_incl : int32 ->int32 -> int32
val nativeint_incl : nativeint ->nativeint -> nativeint
val int64_incl : int64 ->int64 -> int64
val float_range : float ->float -> float
Produces a value between the given bounds (inclusive and exclusive, respectively). Raises if bounds are given in decreasing order.
val bool : unit -> bool
Random.bool () returns true or false with probability 0.5 each.
The functions from module State manipulate the current state of the random generator explicitly. This allows using one or several deterministic PRNGs, even in a multi-threaded program, without interference from other parts of the program.