Uniform in [0, n); 0 when n <= 0. Reads only as many input bytes as n needs.
below :: (r: *Rng, n: s64) -> s64