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); }