diff --git a/app/src/main/java/model/DistinctColorGenerator.java b/app/src/main/java/model/DistinctColorGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d9bd1ee25c8437039a8ab659777d9f71d5788c9
--- /dev/null
+++ b/app/src/main/java/model/DistinctColorGenerator.java
@@ -0,0 +1,34 @@
+package model;
+
+import javafx.scene.paint.Color;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+public class DistinctColorGenerator implements ColorGenerator {
+    private List<Color> colors;
+    private Color defaultColor;
+
+    public DistinctColorGenerator(List<Color> colors, Color defaultColor) {
+        this.colors = colors;
+        this.defaultColor = defaultColor;
+    }
+
+    @Override
+    public Color nextColor(Cell cell) {
+        List<Cell> neighbours = cell.getNeighbours();
+        List<Color> neighbourscolor = new ArrayList<>();
+        for (Cell neighbour : neighbours) {neighbourscolor.add(neighbour.getColor());}
+        int i = 0, j = 0;
+        while (colors.get(i) == neighbourscolor.get(j)) {
+            if (j == neighbourscolor.size() - 1 && i == colors.size() - 1) {return defaultColor;}
+            if (j == neighbourscolor.size() - 1) {
+                j=0;
+                i+=1;
+                continue;}
+            j+=1;
+        }
+        return colors.get(i);
+    }
+}
\ No newline at end of file