public ICollection <T> Shuffle <T>(List <T> list)
        {
            var listCount = list.Count();

            for (int i = 0; i < list.Count; i++)
            {
                var randomIndex = i + rand.GiveMeRandomNumber(listCount - i);
                var temp        = list[randomIndex];
                list[randomIndex] = list[i];
                list[i]           = temp;
            }
            return(list);
        }