aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Extensions/ShuffleExtensions.cs
diff options
context:
space:
mode:
authorMark Monteiro <marknr.monteiro@protonmail.com>2020-03-11 23:04:47 +0100
committerMark Monteiro <marknr.monteiro@protonmail.com>2020-03-11 23:04:47 +0100
commit99bf6edba27c48db6094d1364a7175a0af9158b5 (patch)
tree87ea497716c6e92ae9b7e3cfc540256350b05430 /MediaBrowser.Common/Extensions/ShuffleExtensions.cs
parentd437950ac30ee294ab275362abe711ae3c14ac32 (diff)
parent008a76cf4d7f04eee2f0e1b8d135ea835d7ec7e2 (diff)
Merge remote-tracking branch 'upstream/master' into support-running-without-web-content
Diffstat (limited to 'MediaBrowser.Common/Extensions/ShuffleExtensions.cs')
-rw-r--r--MediaBrowser.Common/Extensions/ShuffleExtensions.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/MediaBrowser.Common/Extensions/ShuffleExtensions.cs b/MediaBrowser.Common/Extensions/ShuffleExtensions.cs
index 5889d09c4..0432f36b5 100644
--- a/MediaBrowser.Common/Extensions/ShuffleExtensions.cs
+++ b/MediaBrowser.Common/Extensions/ShuffleExtensions.cs
@@ -17,11 +17,22 @@ namespace MediaBrowser.Common.Extensions
/// <typeparam name="T">The type.</typeparam>
public static void Shuffle<T>(this IList<T> list)
{
+ list.Shuffle(_rng);
+ }
+
+ /// <summary>
+ /// Shuffles the items in a list.
+ /// </summary>
+ /// <param name="list">The list that should get shuffled.</param>
+ /// <param name="rng">The random number generator to use.</param>
+ /// <typeparam name="T">The type.</typeparam>
+ public static void Shuffle<T>(this IList<T> list, Random rng)
+ {
int n = list.Count;
while (n > 1)
{
n--;
- int k = _rng.Next(n + 1);
+ int k = rng.Next(n + 1);
T value = list[k];
list[k] = list[n];
list[n] = value;