Generating random integers


The random vocabulary contains a protocol for generating random or pseudorandom numbers.

The "Mersenne Twister" pseudorandom number generator algorithm is the default generator stored in random-generator.

Generate random object(s):
Image
random ( obj -- elt )

Image
randoms ( length obj -- seq )


Efficient 32-bit random numbers:
Image
random-32 ( -- n )


Combinators to change the random number generator:
Image
with-random ( rnd quot -- )

Image
with-system-random ( quot -- )

Image
with-secure-random ( quot -- )


Implementation:
Image Random protocol

Randomizing a sequence:
Image
randomize ( seq -- randomized )


Sampling a sequences:
Image
sample ( seq n -- seq' )


Deleting a random element from a sequence:
Image
delete-random ( seq -- elt )


Sequences of random numbers:
Image
random-bytes ( n -- byte-array )

Image
random-units ( length -- sequence )


Random numbers with n bits:
Image
random-bits ( numbits -- n )

Image
random-bits-exact ( numbits -- n )