From 535a699584473a45cee8317203e20e7302533013 Mon Sep 17 00:00:00 2001 From: Christopher Reiter Date: Wed, 5 Nov 2025 14:45:38 +0100 Subject: [PATCH] Add `ArrShuffle` function to shuffle array elements --- langext/array.go | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 +}