Fantasy Draft Order Randomizer
Paste your teams, draw the order, and send the group chat a link. The seed that made the draw is on screen, so anyone in the league can check it.
Fantasy draft order randomizer
12 teams. The order you type them in does not change the draw.
Editable. Same teams + same seed = same order, so a seed someone gives you re-runs their draw.
Weighted lottery (optional)
Give a team more chances by adding a weight after its name: Hail Marys | 3 has three times the odds of a team with no weight. Each pick is drawn in proportion to weight. Weights are whole numbers from 1 to 999.
Reverse standings expects the list best record first; the worst record gets the biggest weight. The odds at the #1 pick show beside each team once the order is drawn.
How the draw works
The draw is a function of two things: your team list and one whole-number seed. Give the same list and the same seed to anyone, on any device, and they get the same order. That is what makes it checkable.
- Sort the teams A to Z. Plain alphabetical order by code point, so the order you typed or pasted the names in cannot change the result.
- Turn the seed into a stream of random numbers. We use mulberry32, a small public 32-bit generator. It is the same one that runs the playoff odds simulator, and it gives the same numbers everywhere.
- Draw one team per pick. For each pick, take the next random number, scale it to the teams still in the pool, and pick the team it lands on. Every team counts once, so every team is equally likely to be picked. Repeat until the pool is empty.
Draw the order asks your browser for a random seed
(crypto.getRandomValues, the same source used for encryption keys), from 1 to
999,999,999. You can also type a seed yourself, and the order re-draws as
you type.
What a seed can and cannot promise
A random seed puts every team in every slot with equal odds. What it cannot do is name every possible order: a nine-digit seed points at one of about a billion draws, and a 12-team league has 479,001,600 possible orders, a 13-team league 6,227,020,800. So this tool cannot produce every arrangement of your league. That does not favor any team, but we would rather say so than let "every possible order" stand as an unspoken claim.
Worked example
Six teams, seed 482913. Sorted A to Z the pool is Gridiron Gang, Hail Marys, Pocket Aces, Red Zone Rebels, Sack Attack, Tight End Zone. Each step scales one random number to the size of the pool, drops the fractional part, and takes the team at that position:
| Pick | Pool | Number × pool | Position | Team |
|---|---|---|---|---|
| 1 | 6 | 0.221 | 1 | Gridiron Gang |
| 2 | 5 | 4.115 | 5 | Tight End Zone |
| 3 | 4 | 2.772 | 3 | Red Zone Rebels |
| 4 | 3 | 1.285 | 2 | Pocket Aces |
| 5 | 2 | 1.730 | 2 | Sack Attack |
| 6 | 1 | 0.911 | 1 | Hail Marys |
Open this exact draw in the tool — the link carries the six team names and the seed, so the order above appears at once. Change one name and the whole order changes, which is the point: the draw is tied to the list it was made from.
Check it without trusting us
You do not have to take the page's word for any of this. This is the whole draw as plain JavaScript. Paste it into your browser's console (F12), swap in your own names and seed, and compare the result with what the tool shows. A test on this site runs this very code against the tool on every change.
function mulberry32(a) {
return () => {
a = (a + 0x6d2b79f5) >>> 0;
let t = a;
t = Math.imul(t ^ (t >>> 15), t | 1);
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
};
}
function draw(teams, seed) {
const rng = mulberry32(seed);
const pool = [...teams].sort((a, b) =>
a.name < b.name ? -1 : a.name > b.name ? 1 : a.weight - b.weight);
const order = [];
while (pool.length > 0) {
let r = rng() * pool.reduce((sum, t) => sum + t.weight, 0);
let i = 0;
while (i < pool.length - 1 && r >= pool[i].weight) r -= pool[i++].weight;
order.push(pool.splice(i, 1)[0].name);
}
return order;
}
// Every weight is 1 unless you gave a team more:
draw(["Ann", "Bo", "Cy", "Di"].map((name) => ({ name, weight: 1 })), 20260901);
// → ["Cy","Di","Bo","Ann"] Weighted lottery for keeper and dynasty leagues
A plain draw gives every team the same chance at the top pick. Leagues that want a bad
season to pay off, or that run a lottery among non-playoff teams, can give teams unequal
odds. Add a weight after a name — Worst record | 4 — and each pick is drawn
in proportion to weight, the way a raffle with more tickets works. After every pick the
remaining teams' odds re-scale, so a team that misses the top spot still has a real chance
at the next one.
With four teams weighted 1, 2, 3 and 4, the odds at the #1 pick are best record 10%, second 20%, third 30%, and worst record 40%. The tool prints each team's odds at #1 beside the order. Weight by reverse standings fills those weights in for you from a list ordered best record first; it is one simple curve, not a rule, so use whatever your constitution says.
Running a draw nobody can argue with
- Agree on the process before anyone draws. Where the seed comes from, and that the first draw stands. Redrawing until you like it is the one way to cheat this tool.
- Use a seed nobody controls. Something announced in advance and out of anyone's hands, like the combined score of a game the whole league is watching, works. Type it into the seed box.
- Post the seed and the link. Copy for group chat gives you the order, the seed and a link that reproduces it. Anyone who doubts it can open the link.
- Write it down. Put how the order is set in your league constitution so it is settled next year too.
The reveal animation is short on purpose — it finishes inside 320 milliseconds — and it switches off entirely if your device asks for reduced motion.
After the draw
A draft order is a list of slots. To see which overall picks your slot owns and how long you will wait between them, use the snake draft pick order calculator, or its third-round reversal setting. The printable draft board turns the order into a wall board. Building the league's schedule next? The schedule generator takes the same team list. Up to 32 teams work here.
Next step
Slot drawn? See every pick it owns.
Find every overall pick you own and how long you'll wait between turns.
Open the snake draft pick orderGet the draft-season cheat sheet in your inbox.
Two short emails a week in season. Tuesday: the waiver adds worth a claim, the defenses and kickers worth streaming, and who’s gaining targets. Saturday: injury report changes, line moves, wind and the close start/sit calls. No spam, unsubscribe any time.
We’ll email you once to confirm. See our privacy policy.