Python 3.11 removed the 2nd argument to shuffle. Argh. Rewrite any shuffles we have to seed the RNG so `shuffle(x)` gives the same result as `shuffle(x, fn)`