code: def randint(low, high, shape=_Null, dtype=_Null, ctx=None, out=None, **kwargs):
      
      return _random_helper(_internal._random_randint, None,
                            [low, high], shape, dtype, ctx, out, kwargs)
docs: Draw random samples from a discrete uniform distribution.
  
      Samples are uniformly distributed over the half-open interval *[low, high)*
      (includes *low*, but excludes *high*).
  
      Parameters
      ----------
      low : int, required
          Lower boundary of the output interval. All values generated will be
          greater than or equal to low.
      high : int, required
          Upper boundary of the output interval. All values generated will be
          less than high.
      shape : int or tuple of ints, optional
          The number of samples to draw. If shape is, e.g., `(m, n)` and `low` and
          `high` are scalars, output shape will be `(m, n)`.
      dtype : {'int32', 'int64'}, optional
          Data type of output samples. Default is 'int32'
      ctx : Context, optional
          Device context of output. Default is current context. Overridden by
          `low.context` when `low` is an NDArray.
      out : NDArray, optional
          Store output to an existing NDArray.
  
      Returns
      -------
      NDArray
          An NDArray of type `dtype`. If input `shape` has shape, e.g.,
          `(m, n)`, the returned NDArray will shape will be `(m, n)`. Contents
          of the returned NDArray will be samples from the interval `[low, high)`.
  
      Examples
      --------
      >>> mx.nd.random.randint(5, 100)
      [ 90]
      <NDArray 1 @cpu(0)
      >>> mx.nd.random.randint(-10, 2, ctx=mx.gpu(0))
      [ -8]
      <NDArray 1 @gpu(0)>
      >>> mx.nd.random.randint(-10, 10, shape=(2,))
      [ -5  4]
      <NDArray 2 @cpu(0)>