diff --git a/langext/array.go b/langext/array.go index 2dc496a..f07b3b7 100644 --- a/langext/array.go +++ b/langext/array.go @@ -3,6 +3,7 @@ package langext import ( "errors" "fmt" + "math/rand" "reflect" ) @@ -608,3 +609,12 @@ func ArrGroupBy[T1 any, T2 comparable](arr []T1, groupfunc func(v T1) T2) map[T2 return r } + +func ArrShuffle[T any](arr []T) []T { + for i := range arr { + j := rand.Intn(i + 1) + arr[i], arr[j] = arr[j], arr[i] + } + + return arr +}