summaryrefslogtreecommitdiff
path: root/sort/shuffle.go
blob: 202faafd1a5b4267b3dbcee8831e70c12293d64d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package sort

import (
	"math/rand"

	"codeberg.org/snonux/algorithms/ds"
)

func Shuffle[V ds.Number](a ds.ArrayList[V]) ds.ArrayList[V] {
	l := len(a)

	for i := 0; i < l; i++ {
		r := l - rand.Intn(l-i) - 1
		a.Swap(i, r)
	}

	return a
}