Splitting a group fairly
You have a class, a squad or a team of colleagues to divide up. What does fair mean here, and what can a randomiser actually promise?
"Split them randomly" describes at least four different jobs, and the tool that does one of them badly does the others catastrophically. Splitting thirty people into six groups once is not the same problem as pairing them up every week for a term without repeats, which is not the same as rotating them round five stations, which is not the same as assigning them to shifts under a list of constraints. This guide sorts out which job you have, and is honest about the ceilings — because the most useful thing a fairness tool can tell you is when what you have asked for is impossible.
One split, right now: teams and groups
The simplest job and the most common. You want groups of roughly equal size and no thought given to who is with whom. The only thing worth getting right is the remainder: thirty people into four groups is 8/8/7/7, not three eights and a six, and certainly not a group of two. A tool that takes people a groupful at a time will strand the remainder, which is the same arithmetic mistake that ruins a box league.
If you need groups balanced by something other than size — ability, year group, department — you are no longer doing a random split, you are doing a constrained allocation. Skip to that section, because shuffling and hoping will not get you there.
Pairs every week, without repeats: this is where shuffling fails
If you pair people up by shuffling the list each week, you will get repeats almost immediately, and people notice. With ten people, independent weekly shuffles repeat a pairing within a few weeks with near certainty. The problem is that a shuffle has no memory, and "nobody works with the same partner twice" is a property of the whole term rather than of any one week.
The fix is a round-robin schedule rather than repeated shuffles: it is the same construction that makes a fixture list, and it guarantees every pair meets exactly once. It also comes with a hard ceiling worth knowing before you promise anything. With n people you get n−1 repeat-free rounds if n is even, and n rounds with somebody sitting out each week if n is odd. There is no arrangement that beats that, so a term longer than the ceiling has to repeat and the only question is whether you choose the repeats or discover them.
- Pair GeneratorBuilds a repeat-free multi-round schedule rather than shuffling each week, and states the ceiling for your group size.
- Round-Robin Fixture GeneratorThe same guarantee framed as fixtures, where the pairs are teams.
- Secret Santa GeneratorThe one-way version: everybody gives to exactly one person and nobody draws themselves.
Everyone through every station: rotations
Carousels, circuits, lab stations, speed-networking. The requirement is that each group visits each station exactly once and no two groups are ever at the same station at the same time. That is a Latin square, and independent shuffles are notably bad at it — in a five-by-five carousel, shuffling each period repeats a station for somebody about sixty-three per cent of the time.
Constructed properly it is guaranteed rather than likely, which is the difference between a plan and a hope. If your rotation has more groups than stations, or stations that take two periods, say so up front: those constraints change the construction rather than being absorbed by it.
Rules that must hold: constraint-aware allocation
As soon as you have requirements — these two cannot be together, this person must be on the early shift, each group needs at least one senior — you are solving rather than shuffling. The distinction matters because a shuffle can only be re-rolled until it happens to satisfy the rules, which fails silently on exactly the constrained inputs where you needed the help.
A solver does two things a re-roll cannot. It finds a valid arrangement when one exists, including the awkward cases where the rules only just fit; and when no arrangement exists it says so and names the rules it could not satisfy, instead of quietly dropping one. That second behaviour is the more valuable of the two — "these three rules cannot all hold" is an answer, and a chart that silently ignores one is worse than no chart.
- Classroom Seating Chart GeneratorKeeps students apart or together and honours front-row and locked-seat rules, reporting anything it cannot satisfy.
- Random Shift Assignment GeneratorAssigns people to slots under hard and soft constraints with a capacity each, and names any rule it could not satisfy instead of dropping it.
What fair cannot mean
Two things get asked for that no randomiser can honestly give. The first is a split that is random and also balanced by ability — those pull against each other, and a tool doing both is doing the balancing and calling it random. Decide which one you actually want, and if it is balance, say so out loud to the group; people mind a stacked team far less than a stacked team presented as a coincidence.
The second is a draw that feels random. Genuine randomness produces clumps: the same person picked twice running, two friends in a group three weeks in a row. Nothing is wrong when that happens, and a tool that prevented it would no longer be random. If what you want is "everybody before anybody repeats", that is a real and reasonable requirement — it is just a rotation, not a draw, so ask for it directly.
There is a third, quieter one: a split that is random and also guaranteed not to produce a particular arrangement. Every constraint you add narrows the set of arrangements the tool may return, and enough constraints leave exactly one — at which point the result is fully determined and calling it random is misleading, even though nothing has gone wrong. This matters most with small groups, where two or three rules can pin an entire seating chart. If the arrangement has to be defensible rather than surprising, say it was solved rather than drawn.
The bottom line
Work out which of the four jobs you have before you pick a tool. One-off splits need only sensible remainders. Anything repeating over weeks needs a schedule, not repeated shuffles, and comes with a ceiling you should know before you promise no repeats. Anything with rules needs a solver that will tell you when the rules cannot all hold.
Other guides
- Choosing a tournament formatKnockout, round-robin, Swiss, double elimination, ladder or boxes — what each costs in time and what each guarantees.
- Running a prize draw people will believeA draw being fair and a draw looking fair are different problems. How to solve the second one without pretending you have solved it.
- Proving a draw was fairWhat a seed actually gives you, why the order you publish it in decides everything, and where reproducibility is the wrong tool.