diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java
index 437c0ec1f865df5a83611b4a8ce3ea91fa78f947..cdd356bc30cf8ca0f05ac247397ae01253992965 100644
--- a/fuzzer/Fuzzer.java
+++ b/fuzzer/Fuzzer.java
@@ -107,11 +107,17 @@ public class Fuzzer {
     private static String generateRunInputs(int runCount){
         switch (runCount){
             case 0:
-                return generateInput(false, INSTRUCTION_MAX, true);
+                // Test with stack full
+                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE);
             case 1:
-                return generateInput(true, INSTRUCTION_MAX, true);
+                // Test with stack full
+                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 5);
+            case 3:
+                // Run static tests and empty stack
+                return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0);
         }
-        return generateInput(true, INSTRUCTION_MAX, false);
+        // Run from random stack
+        return generateInput(true, INSTRUCTION_MAX, randomRange(0, MAX_STACK_SIZE));
     }
 
     /***
@@ -132,7 +138,7 @@ public class Fuzzer {
             boolean stackFull = rand.nextInt(100) < STACK_FULL_PERCENTAGE;
 
             result.append(generateInput(false,
-                                        INSTRUCTION_MAX, stackFull));
+                                        INSTRUCTION_MAX, MAX_STACK_SIZE));
             // Increment generated
             generated += 1;
         }
@@ -146,17 +152,15 @@ public class Fuzzer {
      * @param numInstructions for the line
      * @return the concatenated input for the program as a string
      */
-    private static String generateInput(boolean correct, long numInstructions, boolean stackFull ){
+    private static String generateInput(boolean correct, long numInstructions, int stackPreload ){
         int stackSize = 0;
         int counter = 0;
 
         StringBuilder result = new StringBuilder();
 
-        if (stackFull) {
-            for ( int i = 0 ; i < MAX_STACK_SIZE ; i++ ) {
-                result.append(completeInstruction(true, Instruction.PUSH));
-                stackSize++;
-            }
+        for ( int i = 0 ; i < stackPreload ; i++ ) {
+            result.append(completeInstruction(true, Instruction.PUSH));
+            stackSize++;
         }
 
         if (correct) {