How do I select a random value from an enumeration?

mafu picture mafu · Jun 28, 2010 · Viewed 105.8k times · Source

Given an arbitrary enumeration in C#, how do I select a random value?

(I did not find this very basic question on SO. I'll post my answer in a minute as reference for anyone, but please feel free to post your own answer.)

Answer

Darin Dimitrov picture Darin Dimitrov · Jun 28, 2010
Array values = Enum.GetValues(typeof(Bar));
Random random = new Random();
Bar randomBar = (Bar)values.GetValue(random.Next(values.Length));