Giveaway Picker

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.