using System; using System.Collections.Generic; using System.Linq; public class RandomFill { private T[] values; private int idx; public void Set(IEnumerable values) { if (this.values == null) { this.values = values.ToArray(); this.values.Shuffle(); this.idx = this.values.Length - 1; } } public T Get() { if (this.idx < 0) { this.values.Shuffle(); this.idx = this.values.Length - 1; } T[] array = this.values; int num = this.idx; this.idx = num - 1; return array[num]; } }