Research
Random Partners Week After Week: How Often Pairs Repeat
Pair a class at random every week and last week's partners keep turning up together again. In a class of 24, 40.6% of weeks bring back at least one pair from the week before, and by week 8, 74.8% of students have had the same partner twice. Pressing Generate again can rule out last week's pairs in a press or two, but ruling out every earlier partner gets impractical within a term. We ran 3,682,151 simulated presses of Wheel Cue's team generator, with the same random.js and splitting steps, worked out the exact odds, and built a planner that gives a class of 24 new partners for 23 weeks while keeping the pairs random.
The short answer
Often, and more often the longer you keep going. A random pairing treats every pairing of the class as equally likely, including those that bring last week's partners back together. For a class of 24, paired the way the random team generator does it:
- Next week: any two students are partners 1/23 of the time (4.3%), so on average 0.52 of last week's 12 pairs come back, and 40.6% of weeks repeat at least one. Every even-sized class from 16 to 30 lands between 40.4% and 41.3%.
- Over a term: after 12 weekly pairings, a student has worked with 9.5 different classmates on average, where a plan with no repeats gives 12, and 97.0% of students have had some partner twice.
- Pressing again: pressing Generate teams until no pair from last week repeats takes 1.68 presses on average. Insisting that nobody repeats any earlier partner takes about 325 presses in week 10 and about 51,000 in week 15 in a typical simulated class, and in roughly 4 in 10 of 1,000 simulated classes it became impossible, in week 22 every time.
- The fix: a round-robin schedule, built with the "circle method", gives every student a new partner each week for 23 weeks, longer than a typical semester. Shuffle the names once before you start and each week is still a random pairing.
Percentages are exact unless marked "simulated", and were checked against 3,682,151 simulated presses of Generate through random.js, the file behind every pick on Wheel Cue: compared at 186 points, all 186 agreed within four standard errors. To plan your own class, use the partner planner further down.
One week to the next: four weeks in ten bring a pair back
The team generator shuffles the list, then cuts it into consecutive pairs (People per team 2) or deals it out like cards into half as many teams (Number of teams). Either way, each of the 316,234,143,225 possible pairings of 24 students is equally likely, and last week has no influence on this week.
Take any student: their partner is equally likely to be any of the other 23, hence 1/23. Each of last week's 12 pairs comes back with that chance, so the expected number of repeats is 12/23, about half a pair. The chance that at least one returns is 40.6%, worked out by counting every pairing that avoids all of last week's pairs. In full:
- no pair from last week: 59.4%
- exactly one: 30.9%
- exactly two: 8.1%
- three or more: 1.6%
Class size barely moves this. A bigger class makes each pair less likely to meet again but has more pairs that could, and the two effects nearly cancel: 41.3% at 16 students, 40.4% at 30, 40.1% at 40. It is the same pattern as a name coming up twice on a wheel (see why random feels rigged): each coincidence is unlikely, but there are many chances for one.
When the class is odd
With 25 students, the two settings differ. People per team 2 gives 12 pairs and one student left single (the generator's help suggests placing them by hand), and some pair from last week returns 38.1% of the time. Number of teams 12 puts three students in Team 1, and the figure rises to 48.4%: a trio contains three partner pairs, so each week has 14 partner pairs instead of 12 that could repeat.
Pressing again until nobody repeats
If you announce the rule before the first press ("nobody works with last week's partner"), pressing again until a pairing meets it is fair: every pairing that passes is equally likely. The guide to splitting teams explains why the rule must come first. Each press passes 59.4% of the time, so you need 1.68 presses on average, and more than three only 6.7% of the time (simulated: 1.69 presses on average over 40,000 tries). For 25 students it is 1.62 presses with a single and 1.94 with a trio.
Over a term, the repeats pile up
Pairing at random every week risks more than last week's pair: every earlier week counts.
- Round-robin plan
- Random pairs every week (exact)
Show the numbers
| Week | Round-robin plan | Random every week (exact) | Random every week (simulated) |
|---|---|---|---|
| 1 | 1 | 1.00 | β |
| 2 | 2 | 1.96 | β |
| 3 | 3 | 2.87 | β |
| 4 | 4 | 3.75 | 3.75 |
| 5 | 5 | 4.58 | β |
| 6 | 6 | 5.38 | β |
| 7 | 7 | 6.15 | β |
| 8 | 8 | 6.88 | 6.88 |
| 9 | 9 | 7.58 | β |
| 10 | 10 | 8.25 | β |
| 11 | 11 | 8.90 | β |
| 12 | 12 | 9.51 | 9.50 |
| 13 | 13 | 10.09 | β |
| 14 | 14 | 10.66 | β |
| 15 | 15 | 11.19 | β |
| 16 | 16 | 11.71 | β |
| 17 | 17 | 12.20 | β |
| 18 | 18 | 12.67 | 12.66 |
By week 4, 24.1% of students have already had the same partner twice; by week 8, 74.8%; by week 12, 97.0%. This is the birthday problem at work: each new week has a small chance of matching any one earlier partner, but it is compared against all of them. After 12 weeks the average student has spent 2.5 of those weeks with someone they had already worked with, and after 18 weeks, 5.3.
Across the whole class of 24, there are 276 possible pairs. After 12 weeks, on average 25.8 of them have worked together twice or more (give or take 3.3), and after 18 weeks, on average 11.4 pairs have worked together three times or more. In week 12 alone, 4.64 of the 12 pairs are, on average, students who have worked together before.
Somewhere in the class, the first repeat comes early. Week 2 brings back at least one pair 40.6% of the time, and by the end of week 3 some pair has met twice 79.6% of the time; in our simulation, 96.2% by week 4 and 99.6% by week 5. That is far above the 24.1% for one student by week 4: it takes only one of the 24 students to have a repeat.
| Class | Next week: some pair from last week together again | Presses until no pair repeats (average) | Different partners after 12 weeks | A student has repeated a partner by week 8 | Pairs together twice or more after 12 weeks |
|---|---|---|---|---|---|
| 16 students | 41.3% | 1.70 | 8.4 | 89.9% | 22.6 |
| 20 students | 40.9% | 1.69 | 9.1 | 82.1% | 24.5 |
| 24 students | 40.6% | 1.68 | 9.5 | 74.8% | 25.8 |
| 30 students | 40.4% | 1.68 | 10.0 | 65.4% | 27.1 |
| 25, pairs + a single | 38.1% | 1.62 | 9.3 | 69.4% | not computed |
| 25, pairs + a trio | 48.4% | 1.94 | 10.5 | 80.3% | not computed |
Bigger classes lose fewer partners, because there are more classmates to draw on: after 12 weeks, 10.0 different partners in a class of 30 against 8.4 in a class of 16.
Pressing until every pair is new stops working
A stricter rule: press Generate teams until nobody has worked with their partner in any earlier week. It is cheap early in the term, then gets expensive fast, because each week uses up 12 more pairs.
Show the numbers
| Week | Expected presses (median class) | Middle 80% of classes | Presses actually made (average, simulated) |
|---|---|---|---|
| 2 | 1.68 | 1.68 to 1.68 | 1.68 (1,000 classes) |
| 3 | 2.90 | 2.90 to 2.90 | 2.80 (1,000 classes) |
| 4 | 5.14 | 5.14 to 5.14 | 5.12 (1,000 classes) |
| 5 | 9.36 | 9.35 to 9.36 | 9.24 (1,000 classes) |
| 6 | 17.6 | 17.6 to 17.6 | 17.9 (1,000 classes) |
| 7 | 34.2 | 34.2 to 34.2 | 33.2 (1,000 classes) |
| 8 | 69.2 | 69.1 to 69.3 | 67.3 (1,000 classes) |
| 9 | 146 | 146 to 147 | 145 (1,000 classes) |
| 10 | 325 | 324 to 326 | 300 (100 classes) |
| 11 | 763 | 760 to 766 | β |
| 12 | 1,915 | 1,906 to 1,925 | β |
| 13 | 5,186 | 5,148 to 5,219 | β |
| 14 | 15,357 | 15,220 to 15,488 | β |
| 15 | 50,626 | 49,986 to 51,205 | β |
| 16 | 190,101 | 186,716 to 193,353 | β |
| 17 | 839,009 | 816,491 to 859,792 | β |
| 18 | 4,556,294 | 4,361,249 to 4,724,567 | β |
For a class of 24, the median expected number of presses passes 10 in week 6, 100 in week 9, 1,000 in week 12 (1,915 presses) and a million in week 18 (4,556,294). These figures are exact for each simulated class, given the pairs it had already used, and they hardly depend on that history: in week 15 the middle 80% of 1,000 simulated classes runs from 49,986 to 51,205 presses.
A dead end, whatever you press
Up to week 12, half the class size, an all-new pairing always exists, however the earlier weeks went: each student still has at least half the class left to work with, which by a classic result in graph theory (Dirac's theorem) is always enough. After that, Dirac's guarantee no longer applies.
In week 22, every student has exactly two classmates they have not yet worked with, and those unused pairs join up into loops. An all-new pairing exists only if every loop has an even number of students. In roughly 4 in 10 of 1,000 simulated classes of 24 (39%, with a 95% range of 36% to 42%), at least one loop was odd, and no amount of pressing could finish week 22. Classes of 20 hit that wall 39% of the time (3,000 simulated) and classes of 16, 35% (6,000 simulated). In this run, every dead end came in that loop week (week 22 for 24 students, 18 for 20, 14 for 16); earlier ones are possible, but rare.
The classes that get through reach week 23 with exactly one all-new pairing left out of 316,234,143,225. Pressing again works for one week; for a term, plan ahead.
The fix: a round-robin from a random start
The standard answer is a round-robin schedule, in which everyone meets everyone exactly once, built with the circle method, the same rotation used to draw up fixtures for round-robin sports leagues and chess tournaments. For 8 students, A to H:
- Write A to G around a circle, in order, and put H in the middle.
- Each week, one name on the circle partners H. The two names on either side of it pair up, then the next two out, and so on across the circle.
- The next week, move on to the next name around the circle.
- Week 1: A & H, B & G, C & F, D & E
- Week 2: B & H, C & A, D & G, E & F
- Week 3: C & H, D & B, E & A, F & G
- Week 4: D & H, E & C, F & B, G & A
- Week 5: E & H, F & D, G & C, A & B
- Week 6: F & H, G & E, A & D, B & C
- Week 7: G & H, A & F, B & E, C & D
Every pair meets exactly once in 7 weeks. An even class gets all-new partners for one week fewer than its size: 23 weeks for a class of 24, 15 for 16. The script checked the rotation for every even class up to 64 students.
Keeping it random
A rotation of an alphabetical list is not random, so shuffle the names once before you start: with Shuffle on the random name picker, or by writing down the order from one press of Generate teams. Then rotate the shuffled list.
Each week, on its own, is then a uniformly random pairing. Any two students are equally likely to meet in any week: in a class of 24, 1/23 of the time in week 1, and 12/23 of the time (52.2%) within the first 12 weeks; simulated over 100,000 random starts, 52.3%. In 2,000 full simulated schedules, nobody repeated a partner. What it gives up: the weeks are linked, since the shuffle only relabels one fixed rotation, so not every repeat-free schedule is equally likely. If the surprise matters, keep the plan to yourself.
Odd classes in a round-robin
Add an empty seat, the "bye", and run the rotation with it in the middle. A class of 25 then gets 25 weeks of all-new partners, and each student has the bye exactly once: they work with you or take a role such as timekeeper or checker, so nobody is simply left out. With 7 students, week 1 gives A the bye and pairs B & G, C & F, D & E.
For a one-off pairing, the guide to splitting teams suggests a trio so nobody works alone. Over a term, a trio adds two meetings that the rotation also schedules for some other week, so repeats creep back in. The simple rule we tested, also used by the planner below, keeps every meeting new for 11 weeks in a class of 25. Better trio schedules exist for some class sizes, but none can pass 21 weeks for 25 students. The bye is the simple, safe choice.
Plan partners for your class
Enter your class and the number of weeks. The page shows what random pairs every week would give (exact), makes a round-robin plan from a random starting order, and can simulate 2,000 terms of random weekly pairs with the same random code as the team generator.
Press Make a repeat-free plan for a plan you can copy, or Simulate random pairs to check the exact figures against 2,000 simulated terms.
This planner works in your browser: it does not send or save the names you type. Simulated results change a little on every run; the exact values do not.
Weekly partners with Wheel Cue, step by step
For one week: nobody with last week's partner
- Open the random team generator and replace the sample names with your class, one per line.
- Set Split by to People per team, then change the number beside it (it starts at 4) to 2. With an odd class, the last "group" is one student on their own; to make a trio instead, choose Number of teams and enter half the class, rounded down.
- Press Generate teams, then Copy teams and paste the result into your notes, so next week you can check it.
- Next week, say the rule out loud before you press, then press until no pair from last week is together.
For a term: plan it once
Use the planner on this page: enter your class size or the names, choose the weeks, and press Make a repeat-free plan. It shuffles the names once with the same random code as the team generator and applies the rotation above; Copy the plan copies the list.
To do it by hand, shuffle the names once on the random name picker, copy the shuffled list, and follow the circle steps above.
When the plan meets a real week
- Someone is absent: their partner joins another pair for the day, or works with the student who has the bye. That meeting may come round again later in the plan.
- The plan runs out: after 23 weeks for 24 students (as many weeks as students with a bye), every pair has met once, so repeats can't be avoided: make a fresh plan, or switch to groups of three or four. With bigger groups, the team generator mixes the class quickly, though random teams are not always balanced.
- Two students must not work together: the plan pairs every two students exactly once. Weeks can run in any order, so if your term is shorter than the plan, move their week past the ones you will use. Otherwise swap one of them with a student from another pair that week; the two new pairs will meet again in their own week.
How to check these numbers
The simulation script and its raw results are linked at the top of the page. Save the script and random.js in one folder and run node random-partners-week-after-week.mjs random.js results.json with Node.js 18 or later. It took about 140 seconds on our PC. The exact values will match this page; the simulated ones will differ in the last decimals.
How the script works:
- It loads the real random.js and copies the team generator's code:
CueRandom.shuffle, then either consecutive pairs (People per team 2) or dealing like cards (Number of teams), both checked separately. A shuffle uses one random draw per name, minus one (23 for a class of 24), so the 80,818,074 random draws under the title count draws (including the sampler's, below), not presses. - Exact values use whole-number arithmetic: inclusionβexclusion over pairings for next week, an exact recursion over each student's partners for a term, and an exact count of the all-new pairings left for the strict rule.
- Each simulated-vs-exact check allows four standard errors: all 186 agreed, and the largest gap was 3.10 standard errors.
- For the strict rule, later weeks were drawn with
CueRandom.pickWeightedfrom the exact list of all-new pairings left, which gives the same result as pressing until success without millions of presses. The share of classes that hit a dead end, and when, is simulation only.
The shuffle itself is tested in the fairness report, which runs millions of draws through the same random.js.
How this research was made
The results on this page come from a simulation that runs real draws through random.js β the same file that picks every winner on Wheel Cue β and from the exact formula wherever one exists, and the two are checked against each other. Simulated results are labelled as simulations: they are not usage figures for this site.
The script and its raw output are published with the page, so anyone can re-run the study. The raw results (the JSON file) are free to reuse under the CC BY 4.0 license, with credit to Wheel Cue; the article text is not covered by that license. If you find a mistake, tell us: corrections are dated in the changelog. How the research is made β
Frequently asked questions
How often does random pairing put last week's partners together again?
In a class of 24, 40.6% of weeks repeat at least one pair from the week before, and 0.52 pairs come back on average.
How do I give every student a new partner each week?
Use a round-robin schedule made with the circle method: shuffle the names once, then rotate everyone but one fixed student by one place each week. A class of 24 gets 23 weeks with no repeated partners, and each week is still a random pairing.
Is it fair to press Generate again until nobody has last week's partner?
Yes, if you state that rule before the first press and keep the first pairing that meets it: every pairing that passes is equally likely. For a class of 24 it takes 1.68 presses on average. Avoiding every earlier partner soon takes hundreds of presses.
What do I do with an odd number of students?
Give one student a "bye" each week: they work with you or take a helper role. Run the round-robin with an empty seat and a class of 25 gets 25 weeks of all-new partners, with each student having the bye once. A trio is fine for a one-off split, but over a term it brings repeats sooner.
Can the team generator avoid last week's pairs on its own?
No: each press is a fresh shuffle that does not know last week's pairs. Press again under a rule you state first (1.68 presses on average for 24 students), or make a repeat-free plan for the whole term with the planner on this page.
Keep reading
Pair your class in one click
Paste the names, set People per team to 2, and press Generate teams. Every pairing is equally likely.