code: def shuffle(
      x: Union[ivy.Array, ivy.NativeArray],
      axis: Optional[int] = 0,
      /,
      *,
      seed: Optional[int] = None,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Shuffles the given array along a given axis.
  
      Parameters
      ----------
      x
          Input array. Should have a numeric data type.
      axis
          The axis which x is shuffled along. Default is 0.
      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
          An array object, shuffled along the specified axis.
  
      Examples
      --------
      With :class:`ivy.Array` input:
  
      >>> x = ivy.array([1, 2, 3, 4, 5])
      >>> y = ivy.shuffle(x)
      >>> print(y)
      ivy.array([2, 1, 4, 3, 5])
  
      >>> x = ivy.array([1, 3, 5, 7])
      >>> y = ivy.shuffle(x, seed=394)
      >>> print(y)
      ivy.array([3, 1, 5, 7])
  
      >>> x = ivy.array([1, 0, 5])
      >>> y = ivy.array([0, 0, 0])
      >>> ivy.shuffle(x, seed=394, out=y)
      >>> print(y)
      ivy.array([0, 1, 5])
  
      With :class:`ivy.Container` input:
  
      >>> x = ivy.Container(a=ivy.array([5, 2, 9]),
      ...                   b=ivy.array([7, 1, 6]))
      >>> y = ivy.shuffle(x)
      >>> print(y)
      {
          a: ivy.array([5, 9, 2]),
          b: ivy.array([6, 1, 7])
      }
  
      >>> x = ivy.Container(a=ivy.array([7, 4, 5]),
      ...                   b=ivy.array([9, 8, 2]))
      >>> y = ivy.Container(a=ivy.array([0, 0, 0]),
      ...                   b=ivy.array([0, 0, 0]))
      >>> ivy.shuffle(x, seed=17, out=y)
      >>> print(y)
      {
          a: ivy.array([7, 5, 4]),
          b: ivy.array([9, 2, 8])
      }
  
      >>> x = ivy.Container(a=ivy.array([8, 2, 5]),
      ...                   b=ivy.array([3, 9, 0]))
      >>> ivy.shuffle(x, seed=17, out=x)
      >>> print(x)
      {
          a: ivy.array([2, 8, 5]),
          b: ivy.array([3, 0, 9])
      }
      """
      return ivy.current_backend(x).shuffle(x, axis, 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 10 for calling a global function with example usage: shuffle() and returns: ivy