how to generate random value in each time I run the lua script

1.5k Views Asked by At

I have written a lua script named "lua_rand_gen" which contains following code:

function random_number_func()
    math.randomseed(os.time())
    return (math.random(100000000,999999999))
end

print (random_number_func())


when I run the lua_rand_gen script in the terminal in loop , the above function is not generating randome values as shown :

for ((i=0;i<=5;i++)); do lua lua_rand_gen; done

717952767
717952767
717952767
717952767
717952767
717952767


I know this is because os.time() doesn't change till one second. So, how can I get Random number in lua if the time difference between running the lua script is less than 1 sec.

1

There are 1 best solutions below

2
lhf On

Move math.randomseed(os.time()) outside the function.

It seems to be a common misconception that you need to call math.randomseed before each time you call math.random. This is wrong and will defeat the randomness of math.random, especially if you use os.time() as seed, since the seeds will be the same for a whole second.