Two lists in, an argument out.
Task assigner
3 people, 5 jobs โ press the button and nobody gets to argue.
Both lists are shuffled, then the jobs go round the table โ the load differs by one at most
Seven dinners, drawn
WeeklySeven dinners for the week ahead, spun fresh every Friday. Deciding what to eat is the tiring part, not cooking it.
Try also
How do you split jobs between people fairly at random?
Shuffle both lists, then deal the jobs round the table one at a time. Shuffling the people matters as much as shuffling the jobs: if only the jobs were shuffled, whoever was typed first would always get the first one dealt, and with five jobs between three people they would always get the extra. Shuffling both and dealing in rotation means the load differs by at most one, and who carries it is random.
Five jobs across three people is two, two and one โ never three, one and one. That is what a random-looking assignment usually fails at: picking a person independently for each job gives somebody all five about once in every 121 goes. Dealing in rotation makes the imbalance impossible rather than unlikely.
What the tool cannot know is that one job takes twenty minutes and another takes two. An even count is not an even effort, and the honest fix is to split the big job into two lines so it takes two slots.
How the load comes out
| People | Jobs | Split |
|---|---|---|
| 3 | 3 | one each |
| 3 | 5 | 2 ยท 2 ยท 1 |
| 4 | 6 | 2 ยท 2 ยท 1 ยท 1 |
| 4 | 10 | 3 ยท 3 ยท 2 ยท 2 |
| 5 | 4 | one each, one person off |
| 2 | 7 | 4 ยท 3 |
The gap between the busiest and the quietest person is never more than one job. That is the difference between dealing in rotation and picking a name for each job.
Why picking a name per job goes wrong
With three people and five jobs, choosing independently each time gives every job a one-in-three chance of landing on the same person. The probability that one person gets all five is about 1.2% โ small, but it happens, and when it does the tool looks broken even though it did exactly what it was told. Someone getting nothing at all is much more common: roughly a one-in-eight chance in that same setup.
The neighbouring tools
To split people into sides rather than hand out jobs, use the team generator. For gift-giving, the secret santa generator draws a closed circle so nobody gets themselves. For a rotation that never repeats a pairing, build a schedule with the round robin generator.
Frequently asked questions
What if there are more jobs than people?
They go round again. With five jobs and three people, two get two jobs and one gets a single one โ and who gets the lighter load is random, not whoever is first in the list. The summary line under the result states the split so nobody has to count.
What if there are more people than jobs?
Some people get nothing this round, and the tool says so on their card rather than leaving it blank. That is usually the point when a household rota goes weekly: with four people and two jobs, half the house is off every week if you never rotate.
Can I stop someone getting a particular job?
No, and it would quietly break the fairness โ every exclusion pushes the odds onto everyone else. If somebody genuinely cannot do a job, leave it off the list and settle it separately. A rota with hidden rules is not a random rota.
Does it remember last week?
No. Nothing is stored, so every press starts fresh and the same person can get the bins twice running. If you want a rotation with no repeats, that is a schedule rather than a draw โ the round robin generator builds one.
Is it only for chores?
It works for anything where a set of jobs meets a set of people: presentation topics in a class, tickets in a sprint, shifts on a stand, dishes at a potluck, sections of a group essay. Two lists, one deal.
Can I send the result to everyone?
The two lists live in the address bar, so the link reproduces the setup โ but whoever opens it gets their own fresh deal, which is not what you want. Screenshot the result and send that. A random assignment only means something if everybody sees the same one.
How the randomness works
crypto.getRandomValues with rejection sampling. Jobs are then dealt round-robin
to the shuffled people: the first job to the first person, the second to the second, and back
around when the list runs out. That guarantees the counts differ by at most one, and shuffling the
people first means the person who receives the extra job is chosen at random rather than by
position. Nothing is stored between draws.Sources:
The rota argument is about who decided
Most rota arguments are not about the work. They are about who decided, and whether the decision was made by whoever cared least about doing it. A draw removes that entirely: the process is visible, nobody chose, and the person with the worst job this week has an obvious reason to expect a better one next week.
The one thing a draw cannot fix is a list that was unfair before it was drawn. If cleaning the bathroom takes an hour and taking the bins out takes ninety seconds, treating them as one slot each makes the draw a coin toss for an hour of somebody’s Saturday. Split the long jobs into as many lines as they deserve and the deal comes out honest โ which is a conversation about the list, not about the algorithm.