code: def shuffle(data, **kwargs):
      """Shuffle the elements randomly.
  
      This shuffles the array along the first axis.
      The order of the elements in each subarray does not change.
      For example, if a 2D array is given, the order of the rows randomly changes,
      but the order of the elements in each row does not change.
  
      Parameters
      ----------
      data : NDArray
          Input data array.
      out : NDArray, optional
          Array to store the result.
  
      Returns
      -------
      NDArray
          A new NDArray with the same shape and type as input `data`, but
          with items in the first axis of the returned NDArray shuffled randomly.
          The original input `data` is not modified.
  
      Examples
      --------
      >>> data = mx.nd.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
      >>> mx.nd.random.shuffle(data)
      [[ 0.  1.  2.]
       [ 6.  7.  8.]
       [ 3.  4.  5.]]
      <NDArray 2x3 @cpu(0)>
      >>> mx.nd.random.shuffle(data)
      [[ 3.  4.  5.]
       [ 0.  1.  2.]
       [ 6.  7.  8.]]
      <NDArray 2x3 @cpu(0)>
      """
      return _internal._shuffle(data, **kwargs)
  
file_path: mxnet/python/mxnet/ndarray/random.py
imports: from ..base import numeric_types, _Null
  from ..context import current_context
  from .None import _internal
  from .ndarray import NDArray
label_desc: Use image node_id 13 for calling a global function with example usage: shuffle(data) and returns: _internal