code: def randint(
      low: Union[int, ivy.NativeArray, ivy.Array],
      high: Union[int, ivy.NativeArray, ivy.Array],
      /,
      *,
      shape: Optional[Union[ivy.Shape, ivy.NativeShape]] = None,
      device: Optional[Union[ivy.Device, ivy.NativeDevice]] = None,
      dtype: Optional[Union[ivy.Dtype, ivy.NativeDtype]] = None,
      seed: Optional[int] = None,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Return an array filled with random integers generated uniformly between
      low (inclusive) and high (exclusive).
  
      Parameters
      ----------
      low
          Lowest integer that can be drawn from the distribution.
      high
          One above the highest integer that can be drawn from the distribution.
      shape
          If the given shape is, e.g ``(m, n, k)``, then ``m * n * k`` samples are drawn
          Can only be specified when ``mean`` and ``std`` are numeric values, else
          exception will be raised.
          Default is ``None``, where a single value is returned.
      device
          device on which to create the array. 'cuda:0',
          'cuda:1', 'cpu' etc. (Default value = None).
      dtype
          output array data type. If ``dtype`` is ``None``, the output array data
          type will be the default integer data type. Default ``None``
      seed
          A python integer. Used to create a random seed distribution
      out
          optional output array, for writing the result to. It must have a shape
          that the inputs broadcast to.
  
      Returns
      -------
      ret
          Returns an array with the given shape filled with integers from
          the uniform distribution in the “half-open” interval [low, high)
  
      Examples
      --------
      >>> y = ivy.randint(0, 9, shape=(1,1))
      >>> print(y)
      ivy.array([[5]])
  
      >>> y = ivy.randint(2, 20, shape=(2, 2), device='cpu', seed=42)
      >>> print(y)
      ivy.array([[ 8, 16],
                 [12,  9]])
  
      >>> x = ivy.array([1, 2, 3])
      >>> ivy.randint(0, 10, shape=(3,), out=x)
      >>> print(x)
      ivy.array([2, 6, 7])
  
      >>> y = ivy.zeros((3, 3))
      >>> ivy.randint(3, 15, shape=(3, 3), device='cpu', out=y)
      >>> print(y)
      ivy.array([[ 7,  7,  5],
                 [12,  8,  8],
                 [ 8, 11,  3]])
      """
      return ivy.current_backend().randint(
          low,
          high,
          shape=shape,
          device=device,
          dtype=dtype,
          seed=seed,
          out=out,
      )
  
file_path: ivy/ivy/functional/ivy/random.py
imports: from typing import Optional, Union
  import ivy
  from ivy.func_wrapper import handle_array_function, infer_dtype, handle_out_argument, to_native_arrays_and_back, inputs_to_native_shapes, handle_nestable, handle_device, handle_backend_invalid
  from ivy.utils.backend import backend_stack
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 8 for calling a global function with example usage: randint() and returns: ivy