List<shuffable> Randomize(shuffable[] list) { List<shuffable> randomized = new List<shuffable>(); List<shuffable> original = new List<shuffable>(list); while (original.Count > 0) { int index = r.Next(original.Count); randomized.Add(original[index]); original.RemoveAt(index); } return randomized; }
public shuffable[] Shuffle(shuffable[] list) { List<shuffable> l = new List<shuffable>(); for (int i = 0; i < shuffle; i++) { l.Add(list[i]); } List<shuffable> rr = Randomize(l.ToArray()); for (int i = shuffle; i < list.Length; i++) { rr.Add(list[i]); } return rr.ToArray(); }