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

import (
	"math/rand"

	"github.com/snonux/algorithms/ds"
)

func Shuffle(a ds.ArrayList) ds.ArrayList {
	l := len(a)

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

	return a
}