Page 1 of 1

### Lua - How can I select numbers from a list randomly, with different probabilities of getting selected for each number?

Posted: 10 Sep 2021, 13:57
I have 4 numbers [1, 2, 3, 4]

I want to pick numbers out of this list randomly while giving the most probability to 1 (approx 0.43), next 3 (approx 0.38), and least and equal probabilities to 2 and 4 (approx 0.09 each).

How can I do this in Lua?

This is what I have tried so far.

Code: Select all

``````codeList = {1, 2, 3, 4}
number = codeList[math.random(#codeList)]
``````

### Re: Lua - How can I select numbers from a list randomly, with different probabilities of getting selected for each numbe

Posted: 10 Sep 2021, 14:33

### Re: Lua - How can I select numbers from a list randomly, with different probabilities of getting selected for each numbe

Posted: 10 Sep 2021, 14:36
Hello,

maybe something like this?

Code: Select all

``````function getNumber()
local codeList={1,2,3,4}
local prob={0.43,0.38,0.095,0.095}
local r=math.random()
local index=1
local v=prob[index]
while r>v do
index=index+1
v=v+prob[index]
end
local number=codeList[index]
return number
end``````
You can probably find a nicer algorithm though ;)

Cheers

### Re: Lua - How can I select numbers from a list randomly, with different probabilities of getting selected for each numbe

Posted: 10 Sep 2021, 15:30
This worked! Thank you so much