Hithere's suggestion takes the randomness out when players are shuffled early to keep the tables balanced.
My suggestion would be to simply make the seats unavailable on the highest table and this will allow that table to bread down first.
Heres our example: 23 players, 3 tables @ final table (9), table2 (
, table3 (
Marked 9th seat at final table and 8th seat at table3 unavailable.
Available seats @ final table (
, table2 (
, table3(7)
As people get busted out, the players will randomly be moved. Once the tournament is down to 16 players, table3 will be broken down first because there is only a combination of 16 seats available @ final table & table2.
The only reason we have 9 seats to start with @ final table is because we want the final table to be 9 players but we don't want to break down to two tables when we get down to 17 players thus making the 9th seat @ final table unavailable and then making it available when only 9 players are left.
You should be able to do this with any amount of players. Just make more seats unavailable at the table you want to break down first.
Hope this helps.
Tim