math.random
Shared
Generates a pseudo-random number
Syntax
-- Random float in [0, 1)
local result = math.random()
-- Random integer in [1, max]
local result = math.random(
max
)
-- Random integer in [min, max]
local result = math.random(
min,
max
)Parameters
| Type | Name | Description |
|---|---|---|
int | max | Upper bound when called with one argument |
int | min | Lower bound when called with two arguments |
int | max | Upper bound when called with two arguments |
Returns
| Type | Name | Description |
|---|---|---|
number | result | Generated pseudo-random number: • float in [0, 1) — when called with no arguments • int in [1, max] — when called with one argument • int in [min, max] — when called with two arguments |
Examples
local result = math.random()
engine.print("info", result) -- 0.12345 (varies)local result = math.random(10)
engine.print("info", result) -- 7 (varies)local result = math.random(5, 15)
engine.print("info", result) -- 11 (varies)local flip = math.random(0, 1)
if flip == 0 then
engine.print("info", "Heads")
else
engine.print("info", "Tails")
endlocal items = {"sword", "shield", "potion", "arrow"}
local picked = items[math.random(#items)]
engine.print("info", picked) -- 'potion' (varies)local range_min, range_max = 1.5, 4.5
local result = range_min + math.random() * (range_max - range_min)
engine.print("info", result) -- 2.87 (varies)local roll = math.random(1, 6)
engine.print("info", "Rolled:", roll)local t = {1, 2, 3, 4, 5}
for i = #t, 2, -1 do
local j = math.random(i)
t[i], t[j] = t[j], t[i]
end
for _, v in ipairs(t) do
engine.print("info", v)
end