I ran a seating experiment in Calculus last semester. A couple weeks in I had them request a buddy that would follow them around the room. I came up with four configurations and we rotated every couple of weeks. The kids had minimal protests. Now that I've had a chance to observe them for a while and see who really works well together, I've simplified the idea for second semester.
Before we left again they gave me some preferences. I took that and made two configurations. In the case of each kid, one of the rotations represent their "dream team" scenario.
I also spread them out a little more. Previously they only used five of the six groups available. Now we'll use them all just to provide some legroom. No one stays in the same seat, but if they had a condition like "the front works best" at least one of their rotations will put them there.