Weighted Random Picker vs Duplicate Entries: Do They Give the Same Odds?
A weight is a declared positive number whose share equals that number divided by the sum of all declared weights.
A worked example with numbers
A club gives Ava 3 tickets, Bo 2 tickets, and Cy 1 ticket. A duplicate-row list has six rows: Ava, Ava, Ava, Bo, Bo, Cy. A uniform row picker gives Ava 3/6 = 50%, Bo 2/6 = 33.33%, and Cy 1/6 = 16.67%. The same values entered as weights 3, 2, and 1 produce exactly those shares. The equivalence ends when an accidental pasted row is mistaken for a ticket.
How to set the rule before the result
Use the weighted random picker when the reason and amount of every unequal chance must be visible. Use the ordinary list picker only when every displayed row is one equal claim. Before a draw, publish the labels, weights, total of 6, replacement rule, and whether a duplicate word means two tickets or one error.
Common mistakes that change the odds or the process
Do not call duplicate rows “equal chance” merely because the program chooses rows uniformly. Do not mix fractions, percentages, and ticket counts without converting them to one scale. Do not delete an inconvenient repeated row after the result appears, and do not run a new draw to compensate for a weight people never accepted.
Where this method stops being appropriate
This comparison describes a transparent informal allocation, not a justification for unequal treatment. It cannot establish eligibility, settle a dispute over the weights, or operate a regulated promotion. If all people should have the same chance, remove duplicates and use one row or weight 1 for each person.
How the random source fits into the rule
Weighted sampling is a distinct mathematical problem; Efraimidis’s weighted-sampling paper describes sampling with and without replacement. Browser integer values can come from MDN’s Crypto.getRandomValues reference, but randomness cannot reveal whether three copies of Ava were authorised.
Check the actual population and denominator
A club gives Ava 3 tickets, Bo 2 tickets, and Cy 1 ticket. A duplicate-row list has six rows: Ava, Ava, Ava, Bo, Bo, Cy. A uniform row picker gives Ava 3/6 = 50%, Bo 2/6 = 33.33%, and Cy 1/6 = 16.67%. The same values entered as weights 3, 2, and 1 produce exactly those shares. The equivalence ends when an accidental pasted row is mistaken for a ticket.
Set the rule before an output exists
Use the weighted random picker when the reason and amount of every unequal chance must be visible. Use the ordinary list picker only when every displayed row is one equal claim. Before a draw, publish the labels, weights, total of 6, replacement rule, and whether a duplicate word means two tickets or one error.
Keep a different process from slipping in
Do not call duplicate rows “equal chance” merely because the program chooses rows uniformly. Do not mix fractions, percentages, and ticket counts without converting them to one scale. Do not delete an inconvenient repeated row after the result appears, and do not run a new draw to compensate for a weight people never accepted.
Limit the conclusion to this stated case
This comparison describes a transparent informal allocation, not a justification for unequal treatment. It cannot establish eligibility, settle a dispute over the weights, or operate a regulated promotion. If all people should have the same chance, remove duplicates and use one row or weight 1 for each person.
Name the source behind the numerical claim
Weighted sampling is a distinct mathematical problem; Efraimidis’s weighted-sampling paper describes sampling with and without replacement. Browser integer values can come from MDN’s Crypto.getRandomValues reference, but randomness cannot reveal whether three copies of Ava were authorised.
Compare the two representations in one table
| Label | Duplicate rows | Weight | Probability |
|---|---|---|---|
| Ava | 3 | 3 | 3/6 = 50% |
| Bo | 2 | 2 | 2/6 = 33.33% |
| Cy | 1 | 1 | 1/6 = 16.67% |
The representations match only because every duplicate count equals its displayed integer weight. A list with an unnoticed fourth Ava row changes the total to 7 and Ava’s share to 4/7 = 57.14%; the weighted table would expose that change immediately.
Use labels that can be audited
If two entries really are two tickets, label them Ava ticket 1 and Ava ticket 2 in the retained record. If the intent is a policy score rather than tickets, write the score and the reason rather than disguising it as repeated text. The numerical rule is easy to reproduce only while the input meaning is preserved.
Test the total after every roster change
Adding one genuine ticket changes every share because the denominator changes. In the 3, 2, 1 table, adding one ticket for Cy makes the total 7 and the displayed shares 3/7, 2/7, and 2/7. That may be the intended policy, but it is not a harmless edit. Recalculate and show the new table before selection; otherwise a participant cannot tell whether a duplicate means an equal claim, a ticket, or a secret adjustment.
When weights are fractional, multiply every value by one common positive factor before displaying integer ticket equivalents; 0.5, 0.25, and 0.25 become 2, 1, and 1 without changing the 50%, 25%, and 25% shares.