Would be nice for repeatability to have the option to set the random seed as a parameter at runtime. I've looked through the code base, but got a little confused with tracking all the different spots the RNG gets called, and I'm not sure where it should be initialized. Thoughts?