code: def shuffle(
      x: JaxArray,
      axis: Optional[int] = 0,
      /,
      *,
      seed: Optional[int] = None,
      out: Optional[JaxArray] = None,
  ) -> JaxArray:
      if x.shape == ():
          return x
      if seed:
          rng_input = jax.random.PRNGKey(seed)
      else:
          RNG_, rng_input = jax.random.split(_getRNG())
          _setRNG(RNG_)
  
      # jax.random.shuffle is deprecated; identical behaviour reproduced with
      # jax.random.permutation
      return jax.random.permutation(
          key=rng_input, x=x, axis=axis, independent=True
      )
  
file_path: ivy/ivy/functional/backends/jax/random.py
imports: import jax
  import jax.numpy
  import jaxlib.xla_extension
  from typing import Optional, Union, Sequence
  import ivy
  from ivy.functional.ivy.random import _check_bounds_and_get_shape, _randint_check_dtype_and_bound, _check_valid_scale
  from ivy.functional.backends.jax import JaxArray
  from ivy.func_wrapper import with_unsupported_dtypes
  from .None import backend_version
label_desc: Use image node_id 8 for calling a global function with example usage: shuffle() and returns: jax, x