Binboo.Jira.Commands.PairsCommand.Random C# (CSharp) Method

Random() private method

private Random ( IEnumerable enumerable ) : IEnumerator
enumerable IEnumerable
return IEnumerator
        private IEnumerator<string> Random(IEnumerable<string> enumerable)
        {
            List<string> items = enumerable.ToList();
            var rand = new Random(Environment.TickCount + GC.CollectionCount(1));

            IList<int> alreadyReturned = new List<int>();
            int i = 0;
            while(i < items.Count)
            {
                int next = rand.Next(0, items.Count);
                if (!alreadyReturned.Contains(next))
                {
                    i++;
                    alreadyReturned.Add(next);
                    yield return DevNameFor(items[next]);
                }
            }
        }