Can replace `std::shuffle`, etc. and run on device. Likely important for very large problems Similar in spirit, but separate from #22 (most of those don't use std algorithms)