In my case, I let people create groups ("tables") on the fly and hop between them at will, rather than forced mixing. There's a list along the side that shows which people are at each group. Groups with fewer people sort to the top, to encourage people to join those.
I built on top of Jitsi and the meet.jit.si public servers for video chat. The quality hasn't been as good as something like Zoom, but I love how easy it is to embed and customize!