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]);
}
}
}