public Array ToShuffledArray(Type elementType) { List copy = new List(ToArray()); Array target = Array.CreateInstance(elementType, copy.Count); for (int i=0; i<target.Length; ++i) { target.SetValue(copy.PopAny(), i); } return target; }