using Robust.Shared.Random; namespace Content.Shared; public static class SharedArrayExtension { /// /// Randomizes the array mutating it in the process /// /// array being randomized /// source of randomization /// type of array element public static void Shuffle(this Span array, IRobustRandom? random = null) { var n = array.Length; if (n <= 1) return; IoCManager.Resolve(ref random); while (n > 1) { n--; var k = random.Next(n + 1); (array[k], array[n]) = (array[n], array[k]); } } }