# File lib/backports/extra/random/bits_and_bytes.rb, line 14
    def random_integer(upto)
      n = upto - 1
      nb_full_32 = 0
      while n > PAD_32_BITS
        n >>= 32
        nb_full_32 += 1
      end
      mask = mask_32_bits(n)
      begin
        rand = random_32_bits & mask
        nb_full_32.times do
          rand <<= 32
          rand |= random_32_bits
        end
      end until rand < upto
      rand
    end