🪑Seating Chart Generator

Reshuffle seats, avoiding last time

You Might Also Need

Reshuffling away from last time's seat and neighbour

Enter the roster with a row and column count and the page builds a seating chart; add last time's chart and it reshuffles to avoid both the same seat and the same side by side pairing. Shuffling uses the reverse Fisher-Yates method only, and when violations remain it reshuffles up to 300 times and keeps the chart with the fewest. Fixed seats let you pin someone to a particular spot, so a person who needs the front row can stay while everyone else moves.

Assumptions and what is not covered

All seats are treated as interchangeable, and a neighbour means only the name directly beside you in the same row of the previous chart. Front to back and diagonal relations, seat quality such as sightlines, light or noise, and conditional layouts by height or grades are not covered. No published standard was found for ranking seat quality, so the page never judges a seat as good or bad. The browser Math.random function is not a cryptographically secure random source, so do not use it for assignments that carry legal weight or money. Up to 300 names and up to 20 rows and columns are handled. Written as of October 2026.

Frequently asked questions

I turned on same seat avoidance but some people stayed put.

When the seat count barely covers the roster, or many seats are fixed, not everyone can move. The page reshuffles up to 300 times, shows the chart with the fewest repeats and reports how many people still stayed.

What format does the last chart use?

One line per row, with the names in that row separated by commas. Anyone directly beside you in that chart counts as your neighbour, and neighbour avoidance reshuffles so the same pair does not end up side by side again.

Can I use this for official exam seating?

The browser Math.random function is not a cryptographically secure random source. Keep it for classroom or club seat swaps rather than assignments that carry legal weight or money.