Method
How the draft order is drawn
The exact mechanism behind a draw: a seeded pseudo-random stream, a Fisher-Yates shuffle, the weighted lottery variant, and how a share link reproduces the same result.
The whole tool is two functions. One turns your seed into a stream of pseudo-random numbers; the other walks the team list from the back and swaps each entry with a random earlier entry. That second step is a Fisher-Yates shuffle, which matters because it makes every one of the possible orderings equally likely instead of approximately equally likely. Approximate shuffles are the classic reason a draft order draw gets appealed by whoever picks last.
uniform = Fisher-Yates(teams, mulberry32(seed))
weighted = draw without replacement, in proportion to each team's weight
repeatable: draw(seed=42, teams) == draw(seed=42, teams)
A seed is just a number that starts the random stream. Because the generator is deterministic, the same seed over the same team list always produces the same order — which turns a vague claim of fairness into something a leaguemate can re-run and check. Sharing a draw works the same way: the team list, the seed and the mode travel in the link itself, so nothing is stored anywhere and the recipient's browser reproduces the identical result.
What the reveal looks like
Pick positions are revealed one at a time so a group watching a shared screen finds out together, with pick one held back to the end. The table below is one sample draw for an eight-team league with seed 42 — your own draw will differ, because the same seed over a different team list is a different draw.
| Reveal step | Pick | Team |
|---|---|---|
| 7th shown | #8 | Team 5 |
| 6th shown | #7 | Team 2 |
| 5th shown | #6 | Team 8 |
| 4th shown | #5 | Team 1 |
| 3rd shown | #4 | Team 7 |
| 2nd shown | #3 | Team 4 |
| 1st shown | #2 | Team 6 |
| Final reveal | #1 | Team 3 |
Weighted mode is for leagues that do not want an even draw. Instead of every team having the same shot at pick one, each team carries a weight and picks are drawn without replacement in proportion to those weights. That gives the teams that finished low last season a better chance at the top pick without guaranteeing it. Set every weight to the same number and weighted mode collapses back into an even draw, so you can check it against the plain mode.