Shuffle returns a random permutation of the values in an array along a given index.
Shuffle(A : Array[I] ; I : IndexType)
If A contains dimensions other than I, each slice of those dimensions will be independently shuffled.
If you want to shuffle an array along I, but have the same shuffling apply to all slices along other dimensions, you can do this:
Slice(A, I, Shuffle(@I,I))