diff --git a/build/source_list.bzl b/build/source_list.bzl
index edbefc2..4269322 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -54,6 +54,7 @@
     "common/quiche_linked_hash_map.h",
     "common/quiche_mem_slice_storage.h",
     "common/quiche_protocol_flags_list.h",
+    "common/quiche_random.h",
     "common/quiche_text_utils.h",
     "common/simple_buffer_allocator.h",
     "common/structured_headers.h",
@@ -415,6 +416,7 @@
     "common/quiche_ip_address.cc",
     "common/quiche_ip_address_family.cc",
     "common/quiche_mem_slice_storage.cc",
+    "common/quiche_random.cc",
     "common/quiche_text_utils.cc",
     "common/simple_buffer_allocator.cc",
     "common/structured_headers.cc",
@@ -530,7 +532,6 @@
     "quic/core/crypto/quic_decrypter.cc",
     "quic/core/crypto/quic_encrypter.cc",
     "quic/core/crypto/quic_hkdf.cc",
-    "quic/core/crypto/quic_random.cc",
     "quic/core/crypto/tls_client_connection.cc",
     "quic/core/crypto/tls_connection.cc",
     "quic/core/crypto/tls_server_connection.cc",
@@ -1046,6 +1047,7 @@
     "common/quiche_ip_address_test.cc",
     "common/quiche_linked_hash_map_test.cc",
     "common/quiche_mem_slice_storage_test.cc",
+    "common/quiche_random_test.cc",
     "common/quiche_text_utils_test.cc",
     "common/simple_buffer_allocator_test.cc",
     "common/structured_headers_generated_test.cc",
@@ -1145,7 +1147,6 @@
     "quic/core/crypto/quic_crypto_client_config_test.cc",
     "quic/core/crypto/quic_crypto_server_config_test.cc",
     "quic/core/crypto/quic_hkdf_test.cc",
-    "quic/core/crypto/quic_random_test.cc",
     "quic/core/crypto/transport_parameters_test.cc",
     "quic/core/crypto/web_transport_fingerprint_proof_verifier_test.cc",
     "quic/core/deterministic_connection_id_generator_test.cc",
diff --git a/build/source_list.gni b/build/source_list.gni
index b30c93f..57eab18 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -54,6 +54,7 @@
     "src/quiche/common/quiche_linked_hash_map.h",
     "src/quiche/common/quiche_mem_slice_storage.h",
     "src/quiche/common/quiche_protocol_flags_list.h",
+    "src/quiche/common/quiche_random.h",
     "src/quiche/common/quiche_text_utils.h",
     "src/quiche/common/simple_buffer_allocator.h",
     "src/quiche/common/structured_headers.h",
@@ -415,6 +416,7 @@
     "src/quiche/common/quiche_ip_address.cc",
     "src/quiche/common/quiche_ip_address_family.cc",
     "src/quiche/common/quiche_mem_slice_storage.cc",
+    "src/quiche/common/quiche_random.cc",
     "src/quiche/common/quiche_text_utils.cc",
     "src/quiche/common/simple_buffer_allocator.cc",
     "src/quiche/common/structured_headers.cc",
@@ -530,7 +532,6 @@
     "src/quiche/quic/core/crypto/quic_decrypter.cc",
     "src/quiche/quic/core/crypto/quic_encrypter.cc",
     "src/quiche/quic/core/crypto/quic_hkdf.cc",
-    "src/quiche/quic/core/crypto/quic_random.cc",
     "src/quiche/quic/core/crypto/tls_client_connection.cc",
     "src/quiche/quic/core/crypto/tls_connection.cc",
     "src/quiche/quic/core/crypto/tls_server_connection.cc",
@@ -1046,6 +1047,7 @@
     "src/quiche/common/quiche_ip_address_test.cc",
     "src/quiche/common/quiche_linked_hash_map_test.cc",
     "src/quiche/common/quiche_mem_slice_storage_test.cc",
+    "src/quiche/common/quiche_random_test.cc",
     "src/quiche/common/quiche_text_utils_test.cc",
     "src/quiche/common/simple_buffer_allocator_test.cc",
     "src/quiche/common/structured_headers_generated_test.cc",
@@ -1145,7 +1147,6 @@
     "src/quiche/quic/core/crypto/quic_crypto_client_config_test.cc",
     "src/quiche/quic/core/crypto/quic_crypto_server_config_test.cc",
     "src/quiche/quic/core/crypto/quic_hkdf_test.cc",
-    "src/quiche/quic/core/crypto/quic_random_test.cc",
     "src/quiche/quic/core/crypto/transport_parameters_test.cc",
     "src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier_test.cc",
     "src/quiche/quic/core/deterministic_connection_id_generator_test.cc",
diff --git a/build/source_list.json b/build/source_list.json
index 21ac56f..1c6503f 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -53,6 +53,7 @@
     "quiche/common/quiche_linked_hash_map.h",
     "quiche/common/quiche_mem_slice_storage.h",
     "quiche/common/quiche_protocol_flags_list.h",
+    "quiche/common/quiche_random.h",
     "quiche/common/quiche_text_utils.h",
     "quiche/common/simple_buffer_allocator.h",
     "quiche/common/structured_headers.h",
@@ -414,6 +415,7 @@
     "quiche/common/quiche_ip_address.cc",
     "quiche/common/quiche_ip_address_family.cc",
     "quiche/common/quiche_mem_slice_storage.cc",
+    "quiche/common/quiche_random.cc",
     "quiche/common/quiche_text_utils.cc",
     "quiche/common/simple_buffer_allocator.cc",
     "quiche/common/structured_headers.cc",
@@ -529,7 +531,6 @@
     "quiche/quic/core/crypto/quic_decrypter.cc",
     "quiche/quic/core/crypto/quic_encrypter.cc",
     "quiche/quic/core/crypto/quic_hkdf.cc",
-    "quiche/quic/core/crypto/quic_random.cc",
     "quiche/quic/core/crypto/tls_client_connection.cc",
     "quiche/quic/core/crypto/tls_connection.cc",
     "quiche/quic/core/crypto/tls_server_connection.cc",
@@ -1045,6 +1046,7 @@
     "quiche/common/quiche_ip_address_test.cc",
     "quiche/common/quiche_linked_hash_map_test.cc",
     "quiche/common/quiche_mem_slice_storage_test.cc",
+    "quiche/common/quiche_random_test.cc",
     "quiche/common/quiche_text_utils_test.cc",
     "quiche/common/simple_buffer_allocator_test.cc",
     "quiche/common/structured_headers_generated_test.cc",
@@ -1144,7 +1146,6 @@
     "quiche/quic/core/crypto/quic_crypto_client_config_test.cc",
     "quiche/quic/core/crypto/quic_crypto_server_config_test.cc",
     "quiche/quic/core/crypto/quic_hkdf_test.cc",
-    "quiche/quic/core/crypto/quic_random_test.cc",
     "quiche/quic/core/crypto/transport_parameters_test.cc",
     "quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier_test.cc",
     "quiche/quic/core/deterministic_connection_id_generator_test.cc",
diff --git a/quiche/quic/core/crypto/quic_random.cc b/quiche/common/quiche_random.cc
similarity index 68%
rename from quiche/quic/core/crypto/quic_random.cc
rename to quiche/common/quiche_random.cc
index bd0dc5b..12eeac2 100644
--- a/quiche/quic/core/crypto/quic_random.cc
+++ b/quiche/common/quiche_random.cc
@@ -1,18 +1,11 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quiche/quic/core/crypto/quic_random.h"
+#include "quiche/common/quiche_random.h"
 
 #include <cstdint>
 #include <cstring>
 
 #include "openssl/rand.h"
-#include "quiche/quic/platform/api/quic_bug_tracker.h"
-#include "quiche/quic/platform/api/quic_logging.h"
 #include "quiche/common/platform/api/quiche_logging.h"
-
-namespace quic {
+namespace quiche {
 
 namespace {
 
@@ -48,12 +41,12 @@
   return result;
 }
 
-class DefaultRandom : public QuicRandom {
+class DefaultQuicheRandom : public QuicheRandom {
  public:
-  DefaultRandom() {}
-  DefaultRandom(const DefaultRandom&) = delete;
-  DefaultRandom& operator=(const DefaultRandom&) = delete;
-  ~DefaultRandom() override {}
+  DefaultQuicheRandom() {}
+  DefaultQuicheRandom(const DefaultQuicheRandom&) = delete;
+  DefaultQuicheRandom& operator=(const DefaultQuicheRandom&) = delete;
+  ~DefaultQuicheRandom() override {}
 
   // QuicRandom implementation
   void RandBytes(void* data, size_t len) override;
@@ -62,17 +55,17 @@
   uint64_t InsecureRandUint64() override;
 };
 
-void DefaultRandom::RandBytes(void* data, size_t len) {
+void DefaultQuicheRandom::RandBytes(void* data, size_t len) {
   RAND_bytes(reinterpret_cast<uint8_t*>(data), len);
 }
 
-uint64_t DefaultRandom::RandUint64() {
+uint64_t DefaultQuicheRandom::RandUint64() {
   uint64_t value;
   RandBytes(&value, sizeof(value));
   return value;
 }
 
-void DefaultRandom::InsecureRandBytes(void* data, size_t len) {
+void DefaultQuicheRandom::InsecureRandBytes(void* data, size_t len) {
   while (len >= sizeof(uint64_t)) {
     uint64_t random_bytes64 = Xoshiro256PlusPlus();
     memcpy(data, &random_bytes64, sizeof(uint64_t));
@@ -86,14 +79,15 @@
   }
 }
 
-uint64_t DefaultRandom::InsecureRandUint64() { return Xoshiro256PlusPlus(); }
+uint64_t DefaultQuicheRandom::InsecureRandUint64() {
+  return Xoshiro256PlusPlus();
+}
 
 }  // namespace
 
 // static
-QuicRandom* QuicRandom::GetInstance() {
-  static DefaultRandom* random = new DefaultRandom();
+QuicheRandom* QuicheRandom::GetInstance() {
+  static DefaultQuicheRandom* random = new DefaultQuicheRandom();
   return random;
 }
-
-}  // namespace quic
+}  // namespace quiche
diff --git a/quiche/common/quiche_random.h b/quiche/common/quiche_random.h
new file mode 100644
index 0000000..7ee2995
--- /dev/null
+++ b/quiche/common/quiche_random.h
@@ -0,0 +1,37 @@
+#ifndef QUICHE_COMMON_QUICHE_RANDOM_H_
+#define QUICHE_COMMON_QUICHE_RANDOM_H_
+
+#include <cstddef>
+#include <cstdint>
+
+#include "quiche/common/platform/api/quiche_export.h"
+
+namespace quiche {
+
+// The interface for a random number generator.
+class QUICHE_EXPORT_PRIVATE QuicheRandom {
+ public:
+  virtual ~QuicheRandom() {}
+
+  // Returns the default random number generator, which is cryptographically
+  // secure and thread-safe.
+  static QuicheRandom* GetInstance();
+
+  // Generates |len| random bytes in the |data| buffer.
+  virtual void RandBytes(void* data, size_t len) = 0;
+
+  // Returns a random number in the range [0, kuint64max].
+  virtual uint64_t RandUint64() = 0;
+
+  // Generates |len| random bytes in the |data| buffer. This MUST NOT be used
+  // for any application that requires cryptographically-secure randomness.
+  virtual void InsecureRandBytes(void* data, size_t len) = 0;
+
+  // Returns a random number in the range [0, kuint64max]. This MUST NOT be used
+  // for any application that requires cryptographically-secure randomness.
+  virtual uint64_t InsecureRandUint64() = 0;
+};
+
+}  // namespace quiche
+
+#endif  // QUICHE_COMMON_QUICHE_RANDOM_H_
diff --git a/quiche/common/quiche_random_test.cc b/quiche/common/quiche_random_test.cc
new file mode 100644
index 0000000..2f1aacc
--- /dev/null
+++ b/quiche/common/quiche_random_test.cc
@@ -0,0 +1,47 @@
+#include "quiche/common/quiche_random.h"
+
+#include "quiche/common/platform/api/quiche_test.h"
+
+namespace quiche {
+namespace {
+
+TEST(QuicheRandom, RandBytes) {
+  unsigned char buf1[16];
+  unsigned char buf2[16];
+  memset(buf1, 0xaf, sizeof(buf1));
+  memset(buf2, 0xaf, sizeof(buf2));
+  ASSERT_EQ(0, memcmp(buf1, buf2, sizeof(buf1)));
+
+  auto rng = QuicheRandom::GetInstance();
+  rng->RandBytes(buf1, sizeof(buf1));
+  EXPECT_NE(0, memcmp(buf1, buf2, sizeof(buf1)));
+}
+
+TEST(QuicheRandom, RandUint64) {
+  auto rng = QuicheRandom::GetInstance();
+  uint64_t value1 = rng->RandUint64();
+  uint64_t value2 = rng->RandUint64();
+  EXPECT_NE(value1, value2);
+}
+
+TEST(QuicheRandom, InsecureRandBytes) {
+  unsigned char buf1[16];
+  unsigned char buf2[16];
+  memset(buf1, 0xaf, sizeof(buf1));
+  memset(buf2, 0xaf, sizeof(buf2));
+  ASSERT_EQ(0, memcmp(buf1, buf2, sizeof(buf1)));
+
+  auto rng = QuicheRandom::GetInstance();
+  rng->InsecureRandBytes(buf1, sizeof(buf1));
+  EXPECT_NE(0, memcmp(buf1, buf2, sizeof(buf1)));
+}
+
+TEST(QuicheRandom, InsecureRandUint64) {
+  auto rng = QuicheRandom::GetInstance();
+  uint64_t value1 = rng->InsecureRandUint64();
+  uint64_t value2 = rng->InsecureRandUint64();
+  EXPECT_NE(value1, value2);
+}
+
+}  // namespace
+}  // namespace quiche
diff --git a/quiche/quic/core/crypto/crypto_secret_boxer.h b/quiche/quic/core/crypto/crypto_secret_boxer.h
index e1927f2..5d334c3 100644
--- a/quiche/quic/core/crypto/crypto_secret_boxer.h
+++ b/quiche/quic/core/crypto/crypto_secret_boxer.h
@@ -11,13 +11,12 @@
 #include <vector>
 
 #include "absl/strings/string_view.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/platform/api/quic_export.h"
 #include "quiche/quic/platform/api/quic_mutex.h"
 
 namespace quic {
 
-class QuicRandom;
-
 // CryptoSecretBoxer encrypts small chunks of plaintext (called 'boxing') and
 // then, later, can authenticate+decrypt the resulting boxes. This object is
 // thread-safe.
diff --git a/quiche/quic/core/crypto/crypto_utils.h b/quiche/quic/core/crypto/crypto_utils.h
index 87bf309..adc818d 100644
--- a/quiche/quic/core/crypto/crypto_utils.h
+++ b/quiche/quic/core/crypto/crypto_utils.h
@@ -18,6 +18,7 @@
 #include "quiche/quic/core/crypto/crypto_handshake_message.h"
 #include "quiche/quic/core/crypto/crypto_protocol.h"
 #include "quiche/quic/core/crypto/quic_crypter.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/core/quic_connection_id.h"
 #include "quiche/quic/core/quic_packets.h"
 #include "quiche/quic/core/quic_time.h"
@@ -26,8 +27,6 @@
 
 namespace quic {
 
-class QuicRandom;
-
 class QUIC_EXPORT_PRIVATE CryptoUtils {
  public:
   CryptoUtils() = delete;
diff --git a/quiche/quic/core/crypto/curve25519_key_exchange.h b/quiche/quic/core/crypto/curve25519_key_exchange.h
index 34a49f9..b6e06f3 100644
--- a/quiche/quic/core/crypto/curve25519_key_exchange.h
+++ b/quiche/quic/core/crypto/curve25519_key_exchange.h
@@ -10,12 +10,11 @@
 
 #include "absl/strings/string_view.h"
 #include "quiche/quic/core/crypto/key_exchange.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/platform/api/quic_export.h"
 
 namespace quic {
 
-class QuicRandom;
-
 // Curve25519KeyExchange implements a SynchronousKeyExchange using
 // elliptic-curve Diffie-Hellman on curve25519. See http://cr.yp.to/ecdh.html
 class QUIC_EXPORT_PRIVATE Curve25519KeyExchange
diff --git a/quiche/quic/core/crypto/key_exchange.h b/quiche/quic/core/crypto/key_exchange.h
index a681bf5..573b289 100644
--- a/quiche/quic/core/crypto/key_exchange.h
+++ b/quiche/quic/core/crypto/key_exchange.h
@@ -10,12 +10,11 @@
 
 #include "absl/strings/string_view.h"
 #include "quiche/quic/core/crypto/crypto_protocol.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/platform/api/quic_export.h"
 
 namespace quic {
 
-class QuicRandom;
-
 // Interface for a Diffie-Hellman key exchange with an asynchronous interface.
 // This allows for implementations which hold the private key locally, as well
 // as ones which make an RPC to an external key-exchange service.
diff --git a/quiche/quic/core/crypto/quic_crypto_client_config.h b/quiche/quic/core/crypto/quic_crypto_client_config.h
index f44aac1..546f4d1 100644
--- a/quiche/quic/core/crypto/quic_crypto_client_config.h
+++ b/quiche/quic/core/crypto/quic_crypto_client_config.h
@@ -17,6 +17,7 @@
 #include "quiche/quic/core/crypto/client_proof_source.h"
 #include "quiche/quic/core/crypto/crypto_handshake.h"
 #include "quiche/quic/core/crypto/crypto_protocol.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/core/crypto/transport_parameters.h"
 #include "quiche/quic/core/quic_packets.h"
 #include "quiche/quic/core/quic_server_id.h"
@@ -28,7 +29,6 @@
 class CryptoHandshakeMessage;
 class ProofVerifier;
 class ProofVerifyDetails;
-class QuicRandom;
 
 // QuicResumptionState stores the state a client needs for performing connection
 // resumption.
diff --git a/quiche/quic/core/crypto/quic_crypto_server_config.h b/quiche/quic/core/crypto/quic_crypto_server_config.h
index f114546..77be1f4 100644
--- a/quiche/quic/core/crypto/quic_crypto_server_config.h
+++ b/quiche/quic/core/crypto/quic_crypto_server_config.h
@@ -22,6 +22,7 @@
 #include "quiche/quic/core/crypto/proof_source.h"
 #include "quiche/quic/core/crypto/quic_compressed_certs_cache.h"
 #include "quiche/quic/core/crypto/quic_crypto_proof.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/core/proto/cached_network_parameters_proto.h"
 #include "quiche/quic/core/proto/source_address_token_proto.h"
 #include "quiche/quic/core/quic_time.h"
@@ -35,7 +36,6 @@
 class CryptoHandshakeMessage;
 class ProofSource;
 class QuicClock;
-class QuicRandom;
 class QuicServerConfigProtobuf;
 struct QuicSignedServerConfig;
 
diff --git a/quiche/quic/core/crypto/quic_random.h b/quiche/quic/core/crypto/quic_random.h
index 47722cb..9f7c216 100644
--- a/quiche/quic/core/crypto/quic_random.h
+++ b/quiche/quic/core/crypto/quic_random.h
@@ -5,36 +5,11 @@
 #ifndef QUICHE_QUIC_CORE_CRYPTO_QUIC_RANDOM_H_
 #define QUICHE_QUIC_CORE_CRYPTO_QUIC_RANDOM_H_
 
-#include <cstddef>
-#include <cstdint>
-
-#include "quiche/quic/platform/api/quic_export.h"
+#include "quiche/common/quiche_random.h"
 
 namespace quic {
 
-// The interface for a random number generator.
-class QUIC_EXPORT_PRIVATE QuicRandom {
- public:
-  virtual ~QuicRandom() {}
-
-  // Returns the default random number generator, which is cryptographically
-  // secure and thread-safe.
-  static QuicRandom* GetInstance();
-
-  // Generates |len| random bytes in the |data| buffer.
-  virtual void RandBytes(void* data, size_t len) = 0;
-
-  // Returns a random number in the range [0, kuint64max].
-  virtual uint64_t RandUint64() = 0;
-
-  // Generates |len| random bytes in the |data| buffer. This MUST NOT be used
-  // for any application that requires cryptographically-secure randomness.
-  virtual void InsecureRandBytes(void* data, size_t len) = 0;
-
-  // Returns a random number in the range [0, kuint64max]. This MUST NOT be used
-  // for any application that requires cryptographically-secure randomness.
-  virtual uint64_t InsecureRandUint64() = 0;
-};
+using QuicRandom = quiche::QuicheRandom;
 
 }  // namespace quic
 
diff --git a/quiche/quic/core/crypto/quic_random_test.cc b/quiche/quic/core/crypto/quic_random_test.cc
deleted file mode 100644
index 2a43c29..0000000
--- a/quiche/quic/core/crypto/quic_random_test.cc
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quiche/quic/core/crypto/quic_random.h"
-
-#include "quiche/quic/platform/api/quic_test.h"
-
-namespace quic {
-namespace test {
-
-class QuicRandomTest : public QuicTest {};
-
-TEST_F(QuicRandomTest, RandBytes) {
-  unsigned char buf1[16];
-  unsigned char buf2[16];
-  memset(buf1, 0xaf, sizeof(buf1));
-  memset(buf2, 0xaf, sizeof(buf2));
-  ASSERT_EQ(0, memcmp(buf1, buf2, sizeof(buf1)));
-
-  QuicRandom* rng = QuicRandom::GetInstance();
-  rng->RandBytes(buf1, sizeof(buf1));
-  EXPECT_NE(0, memcmp(buf1, buf2, sizeof(buf1)));
-}
-
-TEST_F(QuicRandomTest, RandUint64) {
-  QuicRandom* rng = QuicRandom::GetInstance();
-  uint64_t value1 = rng->RandUint64();
-  uint64_t value2 = rng->RandUint64();
-  EXPECT_NE(value1, value2);
-}
-
-TEST_F(QuicRandomTest, InsecureRandBytes) {
-  unsigned char buf1[16];
-  unsigned char buf2[16];
-  memset(buf1, 0xaf, sizeof(buf1));
-  memset(buf2, 0xaf, sizeof(buf2));
-  ASSERT_EQ(0, memcmp(buf1, buf2, sizeof(buf1)));
-
-  QuicRandom* rng = QuicRandom::GetInstance();
-  rng->InsecureRandBytes(buf1, sizeof(buf1));
-  EXPECT_NE(0, memcmp(buf1, buf2, sizeof(buf1)));
-}
-
-TEST_F(QuicRandomTest, InsecureRandUint64) {
-  QuicRandom* rng = QuicRandom::GetInstance();
-  uint64_t value1 = rng->InsecureRandUint64();
-  uint64_t value2 = rng->InsecureRandUint64();
-  EXPECT_NE(value1, value2);
-}
-
-}  // namespace test
-}  // namespace quic
diff --git a/quiche/quic/core/quic_connection.h b/quiche/quic/core/quic_connection.h
index 0e4c956..578de98 100644
--- a/quiche/quic/core/quic_connection.h
+++ b/quiche/quic/core/quic_connection.h
@@ -29,6 +29,7 @@
 #include "quiche/quic/core/congestion_control/rtt_stats.h"
 #include "quiche/quic/core/crypto/quic_decrypter.h"
 #include "quiche/quic/core/crypto/quic_encrypter.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/core/crypto/transport_parameters.h"
 #include "quiche/quic/core/frames/quic_ack_frequency_frame.h"
 #include "quiche/quic/core/frames/quic_max_streams_frame.h"
@@ -67,7 +68,6 @@
 class QuicClock;
 class QuicConfig;
 class QuicConnection;
-class QuicRandom;
 
 namespace test {
 class QuicConnectionPeer;
diff --git a/quiche/quic/core/quic_data_writer.h b/quiche/quic/core/quic_data_writer.h
index c96b3b7..cd2486a 100644
--- a/quiche/quic/core/quic_data_writer.h
+++ b/quiche/quic/core/quic_data_writer.h
@@ -9,6 +9,7 @@
 #include <cstdint>
 
 #include "absl/strings/string_view.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/core/quic_types.h"
 #include "quiche/quic/platform/api/quic_export.h"
 #include "quiche/common/quiche_data_writer.h"
@@ -16,8 +17,6 @@
 
 namespace quic {
 
-class QuicRandom;
-
 // This class provides facilities for packing QUIC data.
 //
 // The QuicDataWriter supports appending primitive values (int, string, etc)
diff --git a/quiche/quic/test_tools/crypto_test_utils.h b/quiche/quic/test_tools/crypto_test_utils.h
index d21e897..d650706 100644
--- a/quiche/quic/test_tools/crypto_test_utils.h
+++ b/quiche/quic/test_tools/crypto_test_utils.h
@@ -14,6 +14,7 @@
 #include "absl/strings/string_view.h"
 #include "openssl/evp.h"
 #include "quiche/quic/core/crypto/crypto_framer.h"
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/core/quic_framer.h"
 #include "quiche/quic/core/quic_packets.h"
 #include "quiche/quic/test_tools/quic_test_utils.h"
@@ -29,7 +30,6 @@
 class QuicCryptoServerConfig;
 class QuicCryptoServerStreamBase;
 class QuicCryptoStream;
-class QuicRandom;
 class QuicServerId;
 
 namespace test {
diff --git a/quiche/quic/test_tools/quic_packet_creator_peer.h b/quiche/quic/test_tools/quic_packet_creator_peer.h
index 4607bcd..b7833a4 100644
--- a/quiche/quic/test_tools/quic_packet_creator_peer.h
+++ b/quiche/quic/test_tools/quic_packet_creator_peer.h
@@ -5,12 +5,12 @@
 #ifndef QUICHE_QUIC_TEST_TOOLS_QUIC_PACKET_CREATOR_PEER_H_
 #define QUICHE_QUIC_TEST_TOOLS_QUIC_PACKET_CREATOR_PEER_H_
 
+#include "quiche/quic/core/crypto/quic_random.h"
 #include "quiche/quic/core/quic_packets.h"
 
 namespace quic {
 class QuicFramer;
 class QuicPacketCreator;
-class QuicRandom;
 
 namespace test {
 
