For our wedding, I asked my now wife and a few friends and relatives to fill a “guests’ distance matrix”, where 0 equaled superclose friends and 5 complete strangers, and from a random initial layout, it bruteforced random swaps between guests untill reaching minimum distance configurations. It was a pretty dumb algorithm, but it took into consideration table capacity, party size and closedness of tables. Of course,…
For our rehearsal dinner, we had maybe ~30 people, and did a 4-course meal.
For each course, everyone was assigned different tables, such that over the evening, everyone would get at least one course with everyone else