Generate random enum in C# 2.0

c#, enums

Solution

public T RandomEnum<T>()
{ 
  T[] values = (T[]) Enum.GetValues(typeof(T));
  return values[new Random().Next(0,values.Length)];
}

Thanks to @[Marc Gravell] for ponting out that the max in Random.Next(min,max) is exclusive.

Problem

Could someone please point me toward a cleaner method to generate a random enum member. This works but seems ugly. Thanks! ``` public T RandomEnum<T>() { string[] items = Enum.GetNames(typeof( T )); Random r = new Random(); string e = items[r.Next(0, items.Length - 1)]; return (T)Enum.Parse(typeof (T), e, true); } ```

Original source