How to Make a Weighted Random Choice Fair
A weighted random choice selects an option with probability equal to that option’s stated weight divided by the sum of all positive weights.
A worked example with numbers
A household assigns the next music selector with weights Ava 6, Bo 3, and Cy 1 because the rule gives six, three, and one recorded credits. The total is 6+3+1 = 10. Ava’s probability is 6/10 = 60%, Bo’s is 3/10 = 30%, and Cy’s is 1/10 = 10%. A transparent implementation can map the integer intervals 0–5 to Ava, 6–8 to Bo, and 9 to Cy. The mapping must be visible before the draw; changing Ava’s weight after Ava loses is not a correction.
How to set the rule before the result
Use the weighted random picker when unequal probability is intentional, and use the weighted choice tool to inspect the shares. Write why each weight exists, whether it is a count of tickets or a policy score, and whether selected entries are removed before a later draw. If all three options should have equal odds, give all three weight 1 instead.
Common mistakes that change the odds or the process
Do not describe weights as hidden “fairness adjustments.” Do not duplicate an option in a list without telling participants that duplicates are weights. Do not use negative weights, a zero total, or a percentage total that is assumed rather than calculated. Do not rerun until the low-weight option wins; that converts the announced distribution into an undisclosed one.
Where this method stops being appropriate
Weighted choice is suitable only where unequal allocation is acceptable and the reason can be stated plainly. It is not a substitute for legal eligibility, medical triage, employment selection, school access, safety decisions, or a regulated prize process. A formula can disclose unequal odds; it cannot justify an unfair criterion.
How the random source fits into the rule
Weighted sampling is a recognised distinct problem, including sampling with and without replacement, as discussed in Efraimidis’s weighted random sampling reference. The browser can obtain raw random integers via MDN’s Crypto.getRandomValues reference, but the auditable fact is the published weight table and its total. Preserve that table, the replacement rule, and the first output.
Publish the weight table before the draw
| Option | Weight | Probability |
|---|---|---|
| Ava | 6 | 60% |
| Bo | 3 | 30% |
| Cy | 1 | 10% |
The table is the fairness claim: the probabilities follow from 6+3+1 = 10. Without it, a viewer cannot distinguish an intentional 60% share from a duplicate entry or an implementation defect.
Decide whether weights reset after selection
For repeated draws with replacement, Ava remains at 60% each time. For a no-repeat allocation, removing Ava changes the remaining total to 4 and makes Bo 3/4 = 75% on the next draw. State that model before the first result; it changes both the calculation and what a later repeat means.
Recalculate the stated case before using the result
A household assigns the next music selector with weights Ava 6, Bo 3, and Cy 1 because the rule gives six, three, and one recorded credits. The total is 6+3+1 = 10. Ava’s probability is 6/10 = 60%, Bo’s is 3/10 = 30%, and Cy’s is 1/10 = 10%. A transparent implementation can map the integer intervals 0–5 to Ava, 6–8 to Bo, and 9 to Cy. The mapping must be visible before the draw; changing Ava’s weight after Ava loses is not a correction.
Use the matching tool rule, not a convenient substitute
Use the weighted random picker when unequal probability is intentional, and use the weighted choice tool to inspect the shares. Write why each weight exists, whether it is a count of tickets or a policy score, and whether selected entries are removed before a later draw. If all three options should have equal odds, give all three weight 1 instead.
Keep this allocation within its stated boundary
Do not describe weights as hidden “fairness adjustments.” Do not duplicate an option in a list without telling participants that duplicates are weights. Do not use negative weights, a zero total, or a percentage total that is assumed rather than calculated. Do not rerun until the low-weight option wins; that converts the announced distribution into an undisclosed one. Weighted choice is suitable only where unequal allocation is acceptable and the reason can be stated plainly. It is not a substitute for legal eligibility, medical triage, employment selection, school access, safety decisions, or a regulated prize process. A formula can disclose unequal odds; it cannot justify an unfair criterion.
Keep the stated source and inputs with the result
Weighted sampling is a recognised distinct problem, including sampling with and without replacement, as discussed in Efraimidis’s weighted random sampling reference. The browser can obtain raw random integers via MDN’s Crypto.getRandomValues reference, but the auditable fact is the published weight table and its total. Preserve that table, the replacement rule, and the first output. The numerical example above must remain attached to its population, units, and replacement rule; otherwise a later reader cannot tell which probability or match count it describes.