39 lines
876 B
Markdown
39 lines
876 B
Markdown
# *random* library
|
|
|
|
A library of functions for generating random numbers.
|
|
|
|
## Non-deterministic numbers
|
|
|
|
```lua
|
|
-- Generates a random number in the range [0..1)
|
|
random.random() --> number
|
|
|
|
-- Generates a random integer in the range [0..n]
|
|
random.random(n) --> number
|
|
|
|
-- Generates a random integer in the range [a..b]
|
|
random.random(a, b) --> number
|
|
|
|
-- Generates a random byte array of length n
|
|
random.bytes(n: number) -> Bytearray
|
|
|
|
-- Generates a UUID version 4
|
|
random.uuid() -> str
|
|
```
|
|
|
|
## Pseudorandom numbers
|
|
|
|
The library provides the Random class - a generator with its own isolated state.
|
|
|
|
```lua
|
|
local rng = random.Random()
|
|
|
|
-- Used similarly to math.random
|
|
local a = rng:random() --> [0..1)
|
|
local b = rng:random(10) --> [0..10]
|
|
local c = rng:random(5, 20) --> [5..20]
|
|
|
|
-- Sets the generator state to generate a reproducible sequence of random numbers
|
|
rng:seed(42)
|
|
```
|