But `rng` could be both right? I thought I'll just perfect forward `rng` to `copy` and let `copy` deal about it, but maybe I should copy `rng` and `std::move` it?