More actions
Created page with "local p = {} local seeded local randomseed = math.randomseed local random = math.random function p.random( m, n ) if not seeded then p.seed() end return random( n and m or m and 1 or 0, n or m or 1 ) end function p.seed( seed ) randomseed( seed or ( os.time() + os.clock() * 1000000000 ) ) -- First few values of seed is not guaranteed to be random on some platforms random() random() seeded = true end function p.main( frame ) local m = tonumber( frame.a..." |
m Protected "Module:Random" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) |
(No difference)
|
Latest revision as of 20:58, 16 June 2025
This module generates a pseudo-random number. It is used the same as math.random
, however it first sets up a seed so that the number is actually random.
local p = {}
local seeded
local randomseed = math.randomseed
local random = math.random
function p.random( m, n )
if not seeded then
p.seed()
end
return random( n and m or m and 1 or 0, n or m or 1 )
end
function p.seed( seed )
randomseed( seed or ( os.time() + os.clock() * 1000000000 ) )
-- First few values of seed is not guaranteed to be random on some platforms
random()
random()
seeded = true
end
function p.main( frame )
local m = tonumber( frame.args[1] )
local n = tonumber( frame.args[2] )
return tostring( p.random( n and m or m and 1 or 0, n or m or 1 ) )
end
return p