> from what it looks like the IsaacRng implementation was copied from where it was before

Yes, a direct copy.

> do you know if this is one of those crypto-areas where "you shouldn't roll your own"?

Random number generation has less subtlety, e.g. it's rare that an algorithm/application is worried about fixed-time concerns (like "real" crypto algorithms). So, if implementations are identical, then they have essentially equal security behaviour. FWIW, I ported both `IsaacRng` and `Isaac64Rng` straight from the [original C](http://burtleburtle.net/bob/rand/isaacafa.html) and ran many comparisons against the real implementations (the `IsaacRng` even had a test that called into the C implementation that was formally in the rt for several thousand different seeds, and compared the values of the Rust and C implementations. This test is now removed as I removed the C from the rt). The vectors of values in the tests are generated directly from the C versions.

> Are the canonical names for the 32 and 64 bit variants Isaac and Isaac64? I'd almost rather have Isaac32 if that's not the case.

The canonical names are ISAAC and ISAAC-64 (see the webpage above); I'm happy to have Isaac32 too.

> Assuming that you translated implemented Isaac64, did you just copy the implementation of Isaac and change the constants?

No, the algorithms differ slightly in a few spots; it was a "re-port" of the algorithm working off [isaac64.c](http://burtleburtle.net/bob/c/isaac64.c). (As I said above, I actually did the original Isaac-into-Rust port too.)