Hmm, that's true. And we don't seed it either (assuming that under the hood its just `rand` and `srand`). `Pi::rng` likely has the same problem - it gets seeded to 0.

I suppose it should use `Pi::rng` though, because there's probably nothing that requires `std::random_shuffle` to use the same thing that a call to `srand()` would seed. And then `Pi::rng` should be seeded with `time()`. Which hopefully won't screw anything else.