diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8493559..bd1970c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -96,6 +96,8 @@
     message("You need to build with Clang for fuzzing to work")
   endif()
 
+  add_definitions(-DBORINGSSL_UNSAFE_FUZZER_MODE)
+
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-coverage=edge,indirect-calls")
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-coverage=edge,indirect-calls")
   set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
diff --git a/crypto/rand/CMakeLists.txt b/crypto/rand/CMakeLists.txt
index eedf81b..c66d2ee 100644
--- a/crypto/rand/CMakeLists.txt
+++ b/crypto/rand/CMakeLists.txt
@@ -13,6 +13,7 @@
 
   OBJECT
 
+  deterministic.c
   rand.c
   urandom.c
   windows.c
diff --git a/crypto/rand/deterministic.c b/crypto/rand/deterministic.c
new file mode 100644
index 0000000..e6b7bb7
--- /dev/null
+++ b/crypto/rand/deterministic.c
@@ -0,0 +1,49 @@
+/* Copyright (c) 2016, Google Inc.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
+
+#include <openssl/rand.h>
+
+#if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
+
+#include <string.h>
+
+#include <openssl/chacha.h>
+
+#include "internal.h"
+
+
+/* g_num_calls is the number of calls to |CRYPTO_sysrand| that have occured.
+ *
+ * TODO(davidben): This is intentionally not thread-safe. If the fuzzer mode is
+ * ever used in a multi-threaded program, replace this with a thread-local. (A
+ * mutex would not be deterministic.) */
+static uint64_t g_num_calls = 0;
+
+void RAND_cleanup(void) {}
+
+void RAND_reset_for_fuzzing(void) { g_num_calls = 0; }
+
+void CRYPTO_sysrand(uint8_t *out, size_t requested) {
+  static const uint8_t kZeroKey[32];
+
+  uint8_t nonce[12];
+  memset(nonce, 0, sizeof(nonce));
+  memcpy(nonce, &g_num_calls, sizeof(g_num_calls));
+
+  memset(out, 0, requested);
+  CRYPTO_chacha_20(out, out, requested, kZeroKey, nonce, 0);
+  g_num_calls++;
+}
+
+#endif  /* BORINGSSL_UNSAFE_FUZZER_MODE */
diff --git a/crypto/rand/rand.c b/crypto/rand/rand.c
index 82087ba..5a1bec2 100644
--- a/crypto/rand/rand.c
+++ b/crypto/rand/rand.c
@@ -72,7 +72,8 @@
   OPENSSL_free(state);
 }
 
-#if defined(OPENSSL_X86_64) && !defined(OPENSSL_NO_ASM)
+#if defined(OPENSSL_X86_64) && !defined(OPENSSL_NO_ASM) && \
+    !defined(BORINGSSL_UNSAFE_FUZZER_MODE)
 
 /* These functions are defined in asm/rdrand-x86_64.pl */
 extern int CRYPTO_rdrand(uint8_t out[8]);
diff --git a/crypto/rand/urandom.c b/crypto/rand/urandom.c
index 5bf5c73..a519983 100644
--- a/crypto/rand/urandom.c
+++ b/crypto/rand/urandom.c
@@ -14,7 +14,7 @@
 
 #include <openssl/rand.h>
 
-#if !defined(OPENSSL_WINDOWS)
+#if !defined(OPENSSL_WINDOWS) && !defined(BORINGSSL_UNSAFE_FUZZER_MODE)
 
 #include <assert.h>
 #include <errno.h>
@@ -220,4 +220,4 @@
   }
 }
 
-#endif  /* !OPENSSL_WINDOWS */
+#endif  /* !OPENSSL_WINDOWS && !BORINGSSL_UNSAFE_FUZZER_MODE */
diff --git a/crypto/rand/windows.c b/crypto/rand/windows.c
index 1a0cb8b..9d7dd78 100644
--- a/crypto/rand/windows.c
+++ b/crypto/rand/windows.c
@@ -14,7 +14,7 @@
 
 #include <openssl/rand.h>
 
-#if defined(OPENSSL_WINDOWS)
+#if defined(OPENSSL_WINDOWS) && !defined(BORINGSSL_UNSAFE_FUZZER_MODE)
 
 #include <limits.h>
 #include <stdlib.h>
@@ -53,4 +53,4 @@
   return;
 }
 
-#endif  /* OPENSSL_WINDOWS */
+#endif  /* OPENSSL_WINDOWS && !BORINGSSL_UNSAFE_FUZZER_MODE */
diff --git a/fuzz/client.cc b/fuzz/client.cc
index 7cf41fc..75e518e 100644
--- a/fuzz/client.cc
+++ b/fuzz/client.cc
@@ -1,5 +1,6 @@
 #include <assert.h>
 
+#include <openssl/rand.h>
 #include <openssl/ssl.h>
 
 struct GlobalState {
@@ -15,6 +16,8 @@
 static GlobalState g_state;
 
 extern "C" int LLVMFuzzerTestOneInput(uint8_t *buf, size_t len) {
+  RAND_reset_for_fuzzing();
+
   // This only fuzzes the initial flow from the server so far.
   SSL *client = SSL_new(g_state.ctx);
   BIO *in = BIO_new(BIO_s_mem());
diff --git a/fuzz/server.cc b/fuzz/server.cc
index f4f999a..c37cae7 100644
--- a/fuzz/server.cc
+++ b/fuzz/server.cc
@@ -1,5 +1,6 @@
 #include <assert.h>
 
+#include <openssl/rand.h>
 #include <openssl/ssl.h>
 
 static const uint8_t kCertificateDER[] = {
@@ -204,6 +205,8 @@
 static GlobalState g_state;
 
 extern "C" int LLVMFuzzerTestOneInput(uint8_t *buf, size_t len) {
+  RAND_reset_for_fuzzing();
+
   // This only fuzzes the initial flow from the client so far.
   SSL *server = SSL_new(g_state.ctx);
   BIO *in = BIO_new(BIO_s_mem());
diff --git a/include/openssl/rand.h b/include/openssl/rand.h
index 2c9c969..322249c 100644
--- a/include/openssl/rand.h
+++ b/include/openssl/rand.h
@@ -62,6 +62,12 @@
 OPENSSL_EXPORT void RAND_enable_fork_unsafe_buffering(int fd);
 #endif
 
+#if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
+/* RAND_reset_for_fuzzing resets the fuzzer-only deterministic RNG. This
+ * function is only defined in the fuzzer-only build configuration. */
+OPENSSL_EXPORT void RAND_reset_for_fuzzing(void);
+#endif
+
 
 /* Deprecated functions */
 
