Guide

How to split a class into fair groups

Random assignment stops the friendship groups reforming and stops anyone being picked last. It does not give you balanced groups, and knowing the difference is most of the skill.

By The SpinPicker team. Published .

Letting students pick their own groups is fast, popular, and reliably produces the same outcome: the confident students cluster, the friendship groups reform, and one or two people are chosen last in front of everyone. Letting the teacher pick avoids that but costs ten minutes and invites the complaint that the groups were arranged. Randomising is the third option, and it is better than both, provided you are honest about what it does and does not guarantee.

What a random split guarantees

It guarantees that no student was assigned to a group because of who they are, and that nobody was picked last. That is the entire benefit, and it is a large one. It does not guarantee balanced groups in any other sense. A random split can and sometimes will put the three strongest students together, or produce a group with nobody willing to write anything down. Random means unbiased, not balanced, and treating the two as the same thing is the most common mistake with this method.

If you need balance on some attribute, do not ask randomness to provide it. Split the class into two lists first, for example stronger and less strong readers, randomise each list separately, and then deal one from each. That is stratified sampling, and it gives you unbiased selection within a structure you chose deliberately.

Groups of four, or four groups?

These are different questions and they produce different splits, which is why the team generator asks which one you mean.

Choose number of groups when the constraint is physical: six tables, four stations, three laptops. You get exactly that many groups and their size follows from the class size. Choose members per group when the constraint is pedagogical: pairs for peer marking, threes so nobody can hide, fours for a task with four roles. You get groups of that size and the number of them follows.

Either way the arithmetic rarely divides evenly, and what happens to the remainder is where most group makers quietly do something unhelpful.

What happens to the remainder

Twenty-three students in groups of four is five groups of four and one group of three. That is fine. The failure mode is a tool that makes five groups of four and one group of three plus leaves one student over, or that dumps every leftover into one oversized group of seven.

Round robin dealing avoids both. Instead of filling group one to capacity, then group two, and so on, it deals one name to each group in turn and starts again, like dealing cards. When the names run out, the difference between the largest and smallest group is at most one, always. Twenty-three in six groups gives five groups of four and one of three. Thirty in four groups gives two of eight and two of seven. Seventeen in five gives three of four and two of two and a half, which is impossible, so it gives two of four and three of three. You never end up with a group of one, and nobody is left over.

Worked examples

Every row below was produced by running the team generator's own algorithm, not worked out by hand, because this is exactly the kind of arithmetic that is easy to get confidently wrong.

StudentsSettingResult
234 per group5 groups of 4, 1 group of 3
236 groups5 groups of 4, 1 group of 3
244 per group6 groups of 4
305 groups5 groups of 6
304 per group6 groups of 4, 2 groups of 3
175 groups2 groups of 4, 3 groups of 3
283 per group8 groups of 3, 2 groups of 2

Two rows are worth a second look, because they are the ones that surprise people. Thirty students at four per group does not give seven groups of four and one of two. It first works out how many groups are needed, which is thirty divided by four rounded up, so eight, and then deals thirty names round robin into eight groups: six groups of four and two of three. Twenty-eight at three per group needs ten groups, giving eight of three and two of two. In both cases the shortfall is spread across the groups rather than concentrated in one sad leftover, which is the whole point of dealing rather than filling.

If you would rather have groups of exactly the size you asked for and accept one smaller group at the end, that is a different requirement, and the way to get it is to set the number of groups instead of the size.

Do it in front of them

Run the split on the projector rather than arriving with a list. It takes four seconds and it forecloses the entire category of complaint about how the groups were arrived at, because everyone watched it happen. It also lets you say, truthfully, that you did not choose, which is a more comfortable position than defending choices you did make.

Announce before you run it that you will run it once and keep the result. Re-rolling until the groups look right is a perfectly reasonable thing to want and it is also the moment the split stops being random, so if you are going to intervene, intervene openly: run it, then move two people and say that you are moving them.

When not to randomise

For long projects that will be marked as a group, random assignment can hand one student a group that will not do the work and a grade they cannot control. For a twenty minute task the stakes are low enough that it does not matter; for a six week assessed project it matters a great deal. Similarly, if two students genuinely cannot work together, take that out of the hands of chance beforehand rather than discovering it afterwards.

Is the split actually random?

Yes, and specifically: the shuffle is Fisher-Yates, drawing each swap index from the browser's cryptographic random source with rejection sampling, so no position in the list is favoured. That last part matters more than it sounds, because a naive shuffle that maps a random 32-bit value onto a range with a plain remainder is very slightly biased toward the start of the list, forever, in a way nobody would notice by eye. The fairness page publishes chi-squared results across 16 million draws with the code that produced them.

Getting your list in

Paste one name per line into the team generator, or copy the name column straight out of a spreadsheet, which arrives one per line already. Names never leave the browser, so a class list can go in without going anywhere. More on that, and the classroom features that go with it, on the teachers page.