static class EnumerationExtension
private static System.Random R { get; set; } = new System.Random();
public static Enum Random(this Enum enumeration)
var type = enumeration.GetType();
var strs = enumeration.ToString().Split(", ");
var index = R.Next(strs.Length);
return (Enum)Enum.Parse(type, strs[index]);
public static void Main()
var mwf = DayOfWeek.Monday | DayOfWeek.Wednesday | DayOfWeek.Friday;
Console.WriteLine($"Chosen days: {mwf}");
for (int i = 0; i < 10; ++i)
Console.WriteLine($"Random day: {mwf.Random()}");