Design Q: Order of arguments: input data and algorithm type

That’s arguably only because rand(rng, ...) mutates rng, and should possibly be called rand!(rng, ...)