docs: def gen_n_random_num(n, MAX_NUM=MAX_INT, unique=True):
      """
      Returns @n @unique random unsigned integers (4 bytes) \
      between 0 and @MAX_NUM.
      """
      fmt = "<%dI" % n
      t = struct.calcsize(fmt)
      D = [d % MAX_NUM for d in struct.unpack(fmt, os.urandom(t))]
      if unique:
          D = set(D)
          assert MAX_NUM > n, \
              "Cannot have {0} unique integers less than {1}".format(n, MAX_NUM)
          while len(D) < n:
              print("Number of collision: {}. Regenerating!".format(n - len(D)))
              fmt = "<%dI" % (n - len(D))
              t = struct.calcsize(fmt)
              extra = struct.unpack(fmt, os.urandom(t))
              D |= set(d % MAX_NUM for d in extra)
          D = list(D)
      return D