diff --git a/app/src/main/java/util/RandomUtil.java b/app/src/main/java/util/RandomUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..8bd2ec4663d1d4036df5bf59cd8fbe0b9e94b3b7
--- /dev/null
+++ b/app/src/main/java/util/RandomUtil.java
@@ -0,0 +1,21 @@
+package util;
+
+import java.util.List;
+import java.util.Random;
+
+public class RandomUtil {
+
+
+
+    private  RandomUtil(){
+
+    }
+
+    public static <T> T randomElement(T[] elements, Random random){
+        return elements[random.nextInt(elements.length-1)];
+    }
+
+    public static <T> T randomElement(List<T> elements, Random random){
+        return elements.get(random.nextInt(elements.size()-1));
+    }
+}
diff --git a/app/src/main/java/util/UniformExceptOneGenerator.java b/app/src/main/java/util/UniformExceptOneGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..a1e3a4fe0110577d5480034593a0bc3b456bd270
--- /dev/null
+++ b/app/src/main/java/util/UniformExceptOneGenerator.java
@@ -0,0 +1,30 @@
+package util;
+
+import javafx.scene.paint.Color;
+import model.Cell;
+import model.ColorGenerator;
+
+public class UniformExceptOneGenerator implements ColorGenerator {
+
+    private Color uniformcolor;
+    private Color exeptioncolor;
+    private  int appels ;
+
+    public UniformExceptOneGenerator(Color uniformColor, Color exceptionColor){
+        this.uniformcolor =uniformColor;
+        this.exeptioncolor = exceptionColor;
+        this.appels += 1;
+    }
+
+
+    @Override
+    public Color nextColor(Cell cell) {
+        UniformExceptOneGenerator u =new UniformExceptOneGenerator(uniformcolor,exeptioncolor);
+        if (u.appels==1){
+          return this.uniformcolor;
+        }
+        else if (u.appels>=2){
+            return this.exeptioncolor;}
+        return null;
+    }
+}