ISO: Router that can swap a random pair of in→outs?

I’ve put this thread on my Watch list because it may give me some hints about how to make a pattern like change ringing or method ringing of church bells. Unlike a carillon where the bells remain still and relatively light-weight clappers strike them in any arbitrary order, the bells used in change ringing are swinging back and forth, and their inertia restricts how soon they may be rung again, typically shifting by no more than one place in the sequence (if at all).

See Change ringing - Wikipedia and Method ringing - Wikipedia

Here is a sample sequence, “plain hunt on eight bells”:

1 2 3 4 5 6 7 8- start in rounds (rounds is the descending sequence of bells)
2 1 4 3 6 5 8 7
2 4 1 6 3 8 5 7
4 2 6 1 8 3 7 5
4 6 2 8 1 7 3 5
6 4 8 2 7 1 5 3
6 8 4 7 2 5 1 3
8 6 7 4 5 2 3 1
8 7 6 5 4 3 2 1 – reverse rounds
7 8 5 6 3 4 1 2
7 5 8 3 6 1 4 2
5 7 3 8 1 6 2 4
5 3 7 1 8 2 6 4
3 5 1 7 2 8 4 6
3 1 5 2 7 4 8 6
1 3 2 5 4 7 6 8
1 2 3 4 5 6 7 8 – finish in rounds

Each note swaps places with one of its neighbours, so it’s like a braid pattern.

Here’s another pattern with 6 bells, with two of the strands highlighted:

I have a feeling it’s going to end up being a complicated arrangement of A/B switches, shift registers, S&H, flip-flops, etc. — Oh, I may have an idea. Something to do with two shift registers, one that keeps track of notes “travelling” to the right, another for notes travelling to the left, and they somehow get “interleaved” — Nope. It’s gone now.