Splitting a Class Into Lab Pairs
An odd number, a partner history, and two students who must not be paired.
Lab pairing carries a history constraint that no other pairing problem here does — over a term the goal is that each student works with as many different partners as possible, which makes this an accumulating coverage problem rather than a single draw.
Pairing a class for lab work hits three constraints at once, and only the first is obvious: the class is often an odd number, students should work with different partners over the term, and two specific students must not be paired at all.
The pair generator handles the odd number explicitly; the partner history needs the lunch partner picker, which takes previous pairings as a constraint.
Decide the odd-number rule before you generate
A class of twenty-nine produces fourteen pairs and one student left over. There are exactly two reasonable answers — make one group of three, or name one student as working alone or with you — and the decision should be made before the draw rather than after you see who it is.
The tool draws the bye or the trio from the shuffled list rather than taking whoever was typed last, which matters: a bye assigned to the end of an alphabetical register would land on the same student every single time.
A group of three is usually the better default for lab work specifically, because equipment is set up per bench and a lone student needs a bench of their own. The exception is an activity where three people genuinely cannot share the apparatus.
Partner history is the constraint that accumulates
Over a term, the goal is not that each pairing is random — it is that each student works with as many different partners as possible. Those are different objectives, and independent random pairing achieves the first while performing poorly at the second.
The arithmetic is the birthday problem again. A class of thirty has 435 possible pairs, and each student has twenty-nine possible partners. Random pairing every week for a twelve-week term will give several students a repeat partner, and a few will get the same partner three times.
Feeding last session's pairs into the lunch partner picker as exclusions removes that. It will eventually report that no arrangement avoids every previous pairing, which for a class of thirty takes a long time and for a class of eight arrives within about four sessions.
A class of 30, weekly pairing
- 435 possible pairs; each student has 29 possible partners.
- Independent pairing over 12 weeks: several students get a repeat, a few get the same partner three times.
- With last week's pairs excluded: no repeats, and the constraint stays satisfiable all term.
Keeping two students apart
The must-not-pair rule is best handled by the same exclusion mechanism as partner history — list the pair as a previous pairing, permanently, and it will never be generated.
That is a slight abuse of the field and it works cleanly. The alternative, generating and then manually swapping, is worse: a swap made by the teacher after the draw is visible, and it invites exactly the question you were avoiding.
If the number of permanent exclusions grows large, expect the tool to start reporting failures. At that point the honest answer is that the class has enough constraints that pairing is a manual job with a randomised remainder, which is the same shape as the seating plan problem.
What to keep between sessions
Nothing is stored, so you need to keep the output somewhere. A note with each week's pairs, pasted forward as the exclusion list, is the whole system and it takes about thirty seconds a week.
Keeping the full history rather than just the last week gives better coverage and exhausts the possibilities faster. For a twelve-week term with a class of thirty, keeping everything is comfortable; with a class of twelve it will run out around week five and you should clear it and start again.
Frequently asked questions
Trio or bye for an odd class?
A trio is usually better for lab work, because equipment is set up per bench. Decide before you generate rather than after seeing who is left over.
Is the odd student picked at random?
Yes. The list is shuffled first, so the bye or the trio is not whoever appears last in your register.
How do I stop students repeating partners?
Use the lunch partner picker and paste the previous pairings in as exclusions. The plain pair generator has no memory.
How often will random pairing repeat a partner?
More than you would guess. Weekly pairing in a class of thirty over a term gives several students a repeat and a few the same partner three times.
How do I permanently keep two students apart?
List them as a previous pairing every week. It is a slight abuse of the field and it works cleanly, and it avoids a visible manual swap.
When will the exclusions run out?
For a class of thirty, not within a term. For a class of eight, around session four — at which point clear the history and start again.
Is the history saved anywhere?
No. Keep the output yourself and paste it forward, which takes about thirty seconds a week.
Can it make groups of four instead?
Not this tool. The team generator splits a list into groups of any size, though without the history constraint.
Tools for this job
Random Pair Generator
Split a list into pairs — with an honest answer for what happens on an odd count.
Random Lunch Partner Picker
Pair people across teams — never same team, never a repeat from last round.
Group Role Assigner
Split into groups, then assign roles inside each group — two levels, one draw.
Background reading
Bracket and Fixture Scheduling Maths
Byes, seeding, and the circle method that fits a full round-robin into n-1 rounds.
Randomness in the Classroom: A Primer
Where random selection helps a lesson, where it hurts one, and what teachers report.
Constraint Satisfaction in Fair Draws
What happens when the rules and the randomness disagree — and when there is no answer.