diff --git a/OpenRA.Game/Exts.cs b/OpenRA.Game/Exts.cs index 527bb0e88f..19d177a95d 100644 --- a/OpenRA.Game/Exts.cs +++ b/OpenRA.Game/Exts.cs @@ -108,8 +108,11 @@ namespace OpenRA public static T Random(this IEnumerable ts, MersenneTwister r) { - var xs = ts.ToArray(); - return xs[r.Next(xs.Length)]; + var xs = ts as ICollection; + if (xs != null) + return xs.ElementAt(r.Next(xs.Count)); + var ys = ts.ToList(); + return ys[r.Next(ys.Count)]; } public static T RandomOrDefault(this IEnumerable ts, MersenneTwister r)