@@ -0,0 +1,616 @@
+package net.redborder.utils.types;%0A%0Aimport java.util.*;%0A%0Apublic class RandomType implements Type %7B%0A    List%3CType%3E types = new ArrayList%3C%3E();%0A    Random r = new Random();%0A%0A    public RandomType(Map%3CString, Object%3E params) %7B%0A        Map%3CString, Map%3CString, Object%3E%3E components = (Map%3CString, Map%3CString, Object%3E%3E) params.get(%22components%22);%0A%0A        for (Map.Entry%3CString, Map%3CString, Object%3E%3E component : components.entrySet()) %7B%0A            types.add(TypeManager.newType(component.getValue()));%0A        %7D%0A    %7D%0A%0A    @Override%0A    public Object get() %7B%0A        return types.get(r.nextInt(types.size())).get();%0A    %7D%0A%7D%0A

Add random type (#4)