Seating Chart Generator — Random Classroom Seats
A random seating chart with locked seats, empty seats and print view
Runs in your browser · nothing is uploaded
Click a seat to mark it empty or to lock a name to it.
Seating chart
The link holds the name list and the grid size only, not the seating result.
What it is
A tool for classroom seat changes, exam seating, meeting rooms and workshop tables. Set the number of rows and seats per row, add names, and the names are shuffled onto the chart. Students who must sit near the front can be locked in place, and aisles or locker spaces can be taken out as empty seats. The chart is shown on screen and can be printed, saved or copied as an image, or copied as a text table. Names are handled in your browser and are never uploaded.
How to use
- Add names one per line. Write “Mia @front” for a front-row request or “Liam @back” for the back.
- Set Rows (front to back) and Seats per row. The side with the board is the front.
- Click seats in the chart to mark them empty or to lock a name.
- Press Shuffle seats. Press it again to reshuffle while locked and empty seats stay as they are.
- Use Print, Save as image (PNG), Copy image or Copy table. You can also flip to teacher view, with the board at the bottom.
How it works
- Seat numbering: counted left to right starting at the front row. If you change the number of rows or seats, empty and locked seats keep the same row and position, and any that fall outside the new size are dropped.
- Shuffling: seats that are neither locked nor empty are mixed with cryptographic random numbers (
crypto.getRandomValues) and people are assigned to them. A person already locked into a seat is not assigned a second time. - Front and back requests: the front zone is the first third of the rows (rounded up) and the back zone is the last third. Requesters are placed first, at random, in free seats of that zone; once it is full they spill over to the closest rows.
- Spare seats: with more seats than people, which seats stay empty is random too.
- Printing: only while printing, everything outside the chart is hidden and each seat gets a black border. Empty seats are dashed.
- Share link: it carries the name list and the grid size only, never the result or locked seats, and puts them after the # in the address. That part is never sent to a server, but anyone who receives the link can read it.
- Saving a class: “Save in this browser” keeps the names, grid size, locked seats and empty seats in this browser (localStorage), so next week “Load saved class” brings them back. Nothing is stored unless you press it, and “Delete saved class” removes it.
Examples
| Grid | Seats | Names | Result |
|---|---|---|---|
| 4 × 6 | 24 | 24 | one person in every seat |
| 4 × 6 | 24 | 20 | 4 seats left empty at random |
| 5 × 6 with 5 aisle seats empty | 25 usable | 25 | everyone seated, aisles untouched |
| 3 × 4, “Mia @front” | 12 | 10 | Mia sits in the front row |
FAQ
How do I lock a seat?
Click a seat in the chart to select it, pick a name from the list and press "Lock to this seat". After a shuffle you can also press "Lock [name] here" to keep whoever is sitting there. Locked people stay put on every later shuffle and only the rest are mixed. Locking someone who already sits elsewhere swaps them with the person in the selected seat, so no name appears twice.
How do I leave out an aisle or a locker space?
Select the seat and press "Mark this seat as empty". Nobody is placed there; after a shuffle the rest of the arrangement stays, and the person who sat there moves to a random open seat. If no open seat is left, their name is shown as having no seat, so you can shuffle again or add seats. Press the same button again to make it usable, and locking a name into a seat clears its empty mark automatically.
How do front and back preferences work?
Add "@front" or "@back" after a name, like "Mia @front". Those people are seated first, at random, in the front third of the rows (or the back third). If that zone is full they move to the nearest rows, so nobody is left out and requests are met as far as space allows.
Will printing give me just the chart?
Yes. The print view hides the inputs and buttons and shows a title plus the chart with solid black borders. Switch to teacher view first if you want the print to match the way you face the class.
What if there are more seats than people, or fewer?
Spare seats are left empty at random. With more people than seats the tool tells you how many seats you are short and does not place anyone. Rows and seats per row can each go up to 15.
Related tools
Team Generator
A random team maker with keep-together and keep-apart rules
Raffle Picker
A no-repeat raffle with a proof image carrying draw time and SHA-256 hashes
Wheel Spinner
A picker wheel with weights, saved lists and share links
Random Number Generator
A crypto-grade random number generator with ranges, unique mode and decimals