adding shuffle

This commit is contained in:
2023-12-24 14:33:52 -03:00
parent 9ef8af8e23
commit f0a81e5305
3 changed files with 48 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
using Discord.WebSocket;
namespace Kasbot.Extensions
{
public static class IListExtensions
{
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source)
{
var rng = new Random();
var buffer = source.ToList();
for (int i = 0; i < buffer.Count; i++)
{
int j = rng.Next(i, buffer.Count);
yield return buffer[j];
buffer[j] = buffer[i];
}
}
}
}