Exemplo n.º 1
0
        /// <summary>
        /// Same as Randomize, but changes the original List's elements order
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="e"></param>
        /// <returns></returns>
        public static IEnumerable <T> RandomizeMutable <T>(this IList <T> e)
        {
            var n = e.Count;

            while (n > 1)
            {
                n--;
                var k     = SafeRandom.GetInt(n + 1);
                T   value = e[k];
                e[k] = e[n];
                e[n] = value;
            }

            return(e);
        }