using System;
public class Program
{
public static void Main()
Random rnd = new Random(Guid.NewGuid().GetHashCode());
var boo = new Boo();
boo.options[rnd.Next(boo.options.Length)].Foo();
}
class Boo
public A[] options;
public Boo()
options = new A[]
new B(),
new C(),
new D(),
new E()
};
class A
public virtual void Foo() { Console.WriteLine(this.GetType().Name); }
class B : A{}
class C : A{}
class D : A{}
class E : A{}