Is it worth having a flag for whether the upper half of the last random number generated was used? It seems like `next_u32` could be implemented by using the last `u64` twice (once for the lower half and once for the upper half) at only the expense of a boolean flag (or some state-like variable).