Skip to main content

core/Random

Random number generation.

Function blob

func blob() : async Blob

Function fast

func fast(seed : Nat64) : Random

Creates a fast pseudo-random number generator using the SFC64 algorithm. This provides statistical randomness suitable for simulations and testing, but should not be used for cryptographic purposes. The seed blob's first 8 bytes are used to initialize the PRNG.

Function crypto

func crypto() : AsyncRandom

Creates a random number generator suitable for cryptography using entropy from the ICP management canister with automatic resupply.

Function fromGenerator

func fromGenerator(generator : () -> Blob) : Random

Function fromAsyncGenerator

func fromAsyncGenerator(generator : () -> async* Blob) : AsyncRandom

Class Random

class Random({ nextBit : () -> Bool; nextByte : () -> Nat8 })

Value bool

let bool

Random choice between true and false.

Value nat8

let nat8

Random Nat8 value in the range [0, 256).

Function nat64

func nat64() : Nat64

Function nat64Range

func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : Nat64

Function natRange

func natRange(fromInclusive : Nat, toExclusive : Nat) : Nat

Function intRange

func intRange(fromInclusive : Int, toExclusive : Int) : Int

Class AsyncRandom

class AsyncRandom({ nextBit : () -> async* Bool; nextByte : () -> async* Nat8 })

Value bool

let bool

Random choice between true and false.

Value nat8

let nat8

Random Nat8 value in the range [0, 256).

Function nat64

func nat64() : async* Nat64

Function nat64Range

func nat64Range(fromInclusive : Nat64, toExclusive : Nat64) : async* Nat64

Function natRange

func natRange(fromInclusive : Nat, toExclusive : Nat) : async* Nat

Function intRange

func intRange(fromInclusive : Int, toExclusive : Int) : async* Int