Verify Provability
As the blockhash is just a number, its last 6 digits is converted to decimal using
this function:
var decimal = parseInt(blockhash.slice(-6), 16);
Now we have an integer (0 to 16777215) from the blockhash.
After dividing this decimal by the number of participants, we use the modulo operator
(%)
to get the division remainder becomes
the index_number.
This index_number is applied in the participants list, to get the position of the winner.
var index_number = decimal % participants.length;
var winner = participants[index_number];
For additional winners, the past winners are removed from the list and one more digit is added from the blockhash. A maximum 210 was added to avoid working with big numbers.