using unbiased rand_below
diff --git a/include/afl-fuzz.h b/include/afl-fuzz.h
index 24e8ca9..5c39104 100644
--- a/include/afl-fuzz.h
+++ b/include/afl-fuzz.h
@@ -1027,7 +1027,12 @@
 
   }
 
-  return rand_next(afl) % limit;
+  /* Modulo is biased - we don't want our fuzzing to be biased so let's do it right. */
+  u64 unbiased_rnd; 
+  do {
+    unbiased_rnd = rand_next(afl);
+  } while (unbiased_rnd >= (UINT64_MAX - (UINT64_MAX % limit)));
+  return unbiased_rnd % limit;
 
 }