Oh I hadn't thought about not knowing what to generate as the seed. It still seems a bit odd to me that this creates a brand new RNG all the time. Could the isaac generators also be `Seedable<R: Rng>` or something like that? That way you could generically re-seed with the OSRng (which is what happens anyway)

Another option I suppose would be that there's a function for each implementation of StdRng which just "creates a new seed" of whatever the appropriate type is (or maybe calls a callback with a seed to prevent allocations. If none of that's possible though, then I think this is ok.