Building a Classroom Seating Plan
A fully random plan is the wrong answer, and most teachers already know why.
A classroom seating plan has non-negotiable fixed positions before any draw happens — sightlines, hearing, support needs — which means the randomised part is a minority of the seats and the teacher must be able to pin the rest.
A seating plan is not a randomisation problem with some rules attached. It is a constraint problem with a randomised remainder, and getting that order right is what makes the exercise work.
The practical method is two-stage: fix the seats that are non-negotiable by hand, then randomise everything left over with keep-apart rules applied.
Fix the non-negotiable seats first
Some seats are determined before any randomisation can happen. A student who needs to be near the front for sight or hearing, a student with a support assistant, a student whose access needs constrain the route to their desk — none of those are candidates for a random draw.
The seating chart randomizer cannot pin a person to a seat, and that is a real limitation rather than an oversight. The workaround is straightforward: decide those placements first, remove those students and those seats from the pool, and randomise the remainder.
In a class of thirty that typically leaves twenty-four or twenty-six students to place, which is more than enough for a randomised plan to feel randomised.
Keep-apart rules do most of the work
The rules matter more than the draw. Two or three keep-apart pairs in a class of thirty is normal, and each one removes a large fraction of possible arrangements — the tool checks all eight neighbouring positions, including diagonals, which is what people mean by sitting near someone.
Adding rules compounds fast. Two pairs are satisfied by most arrangements and a valid one appears immediately; six pairs in a full room with no empty seats will frequently be refused after three thousand attempts, which is the tool saying the room is too tight for the rules.
The reliable fix for that is space rather than fewer rules. Adding a row so there are gaps in the grid gives the constraints somewhere to breathe, and the empty seats are distributed by the shuffle rather than swept to the back.
Rules against room size
- 18 students, 4×5 grid, 2 keep-apart pairs: valid on the first or second attempt.
- 20 students, 4×5 grid, 6 pairs: attempts run into the hundreds, sometimes refused.
- 20 students, 5×5 grid, 6 pairs: usually valid immediately — the five gaps do the work.
How often to change it
There is no correct interval, and the two failure modes are opposite. A plan that never changes calcifies the social geography of the room; a plan that changes every lesson costs several minutes of settling time each week and gives nobody a stable working relationship.
Half-termly is the common compromise, and if the goal is specifically to change who works with whom, the seat rotation tool is a better fit than regenerating a plan: it guarantees that nobody keeps their previous seat, which a fresh random plan does not.
That guarantee matters more than it sounds. A fresh random plan leaves, on average, exactly one student in their previous seat — and it is exactly one whether the class is ten or three hundred, which is one of the more surprising results in probability.
What to tell the class
Say that the plan is randomised and that some seats were fixed for specific reasons you are not going to discuss. Both halves of that sentence matter: the first explains why they cannot lobby you, and the second forestalls the question about why a particular student is at the front.
Do not claim it is entirely random if it is not. A class that spots a fixed placement after you claimed full randomness has learned something about your other claims, which is a much larger cost than the one you were avoiding.
Frequently asked questions
Can I fix a student in a particular seat?
Not within the tool. Place those students by hand first, then randomise the remaining students into the remaining seats.
Does keep-apart include diagonal neighbours?
Yes, all eight surrounding positions. Sitting diagonally behind someone is sitting near them.
Why did the tool refuse to generate a plan?
Because your rules could not be satisfied in three thousand attempts. Usually the room is too full — adding a row of empty seats fixes it.
How often should I change the plan?
Half-termly is the common compromise. Every lesson costs settling time; never at all lets the room's social geography set.
Is a fresh random plan the same as rotating?
No. A fresh plan leaves on average exactly one student in their previous seat, whatever the class size. The rotation tool guarantees nobody keeps theirs.
Where do the empty seats go?
Anywhere in the grid, distributed by the shuffle rather than pushed to the back — which produces a more usable layout and helps satisfy the rules.
Should I tell the class it is random?
Yes, and also that some seats were fixed for specific reasons. Claiming full randomness when it is not is a much larger cost when spotted.
Which end is the front of the room?
The top row of the grid, so the plan does not need transposing in your head.
Tools for this job
Background reading
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.
Derangements and the Secret Santa Problem
Why a plain shuffle fails a gift exchange 63% of the time, and what a derangement is.