forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			843 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			843 B
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
 | 
						|
namespace FishNet.Utility.Extension
 | 
						|
{
 | 
						|
    public static class CollectionFN
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Random for shuffling.
 | 
						|
        /// </summary>
 | 
						|
        private static Random _random = new Random();
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Shuffle based on Fisher-Yates shuffle.
 | 
						|
        /// https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
 | 
						|
        /// https://stackoverflow.com/questions/273313/randomize-a-listt
 | 
						|
        /// </summary>
 | 
						|
        public static void Shuffle<T>(this IList<T> lst)
 | 
						|
        {
 | 
						|
            int n = lst.Count;
 | 
						|
            while (n > 1)
 | 
						|
            {
 | 
						|
                n--;
 | 
						|
                int k = _random.Next(n + 1);
 | 
						|
                T value = lst[k];
 | 
						|
                lst[k] = lst[n];
 | 
						|
                lst[n] = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
} |