@JonRowe  I would really like some feedback on this since it seems that you have an eye on performance.

This shuffling algorithm (which is what I implemented for spec ordering) is significantly less performant than `Array#shuffle`, albeit better than `Array#sort_by`, but I'm not sure what kind of threshold we should be looking for here. There are a number of ways it could be improved, but they all come at a cost of reduced randomness, bias, etc and/or additional code complexity (i.e. `Array#shuffle(rand: rng_with_rspec_seed)` would be the best, but it only works on Ruby 1.9.3+.

The context for this is that there are fairly significant reasons to only have one call to `Kernel.srand` in the entirety of the RSpec execution chain, but that means that `Array#shuffle` can't be used for random spec ordering, therefore requiring a different algorithm.