diff --git a/quic/core/congestion_control/bbr2_simulator_test.cc b/quic/core/congestion_control/bbr2_simulator_test.cc
index 19d68b2..9c34c0b 100644
--- a/quic/core/congestion_control/bbr2_simulator_test.cc
+++ b/quic/core/congestion_control/bbr2_simulator_test.cc
@@ -118,7 +118,7 @@
 
 class Bbr2SimulatorTest : public QuicTest {
  protected:
-  Bbr2SimulatorTest() {
+  Bbr2SimulatorTest() : simulator_(&random_) {
     // Disable Ack Decimation by default, because it can significantly increase
     // srtt. Individual test can enable it via QuicConnectionPeer::SetAckMode().
     SetQuicReloadableFlag(quic_enable_ack_decimation, false);
@@ -151,9 +151,9 @@
 
   QuicTime SimulatedNow() const { return simulator_.GetClock()->Now(); }
 
-  simulator::Simulator simulator_;
   uint64_t random_seed_;
   SimpleRandom random_;
+  simulator::Simulator simulator_;
 };
 
 class Bbr2DefaultTopologyTest : public Bbr2SimulatorTest {
@@ -170,8 +170,6 @@
                            Perspective::IS_SERVER,
                            TestConnectionId(42)) {
     sender_ = SetupBbr2Sender(&sender_endpoint_);
-
-    simulator_.set_random_generator(&random_);
   }
 
   ~Bbr2DefaultTopologyTest() {
@@ -819,8 +817,6 @@
         std::make_unique<simulator::QuicEndpointMultiplexer>(
             "Receiver multiplexer", receiver_endpoint_pointers);
     sender_1_ = SetupBbr2Sender(sender_endpoints_[0].get());
-
-    simulator_.set_random_generator(&random_);
   }
 
   ~Bbr2MultiSenderTest() {
diff --git a/quic/core/congestion_control/bbr_sender_test.cc b/quic/core/congestion_control/bbr_sender_test.cc
index 1f45089..d34d15b 100644
--- a/quic/core/congestion_control/bbr_sender_test.cc
+++ b/quic/core/congestion_control/bbr_sender_test.cc
@@ -83,7 +83,7 @@
 class BbrSenderTest : public QuicTest {
  protected:
   BbrSenderTest()
-      : simulator_(),
+      : simulator_(&random_),
         bbr_sender_(&simulator_,
                     "BBR sender",
                     "Receiver",
@@ -110,7 +110,6 @@
     sender_ = SetupBbrSender(&bbr_sender_);
 
     clock_ = simulator_.GetClock();
-    simulator_.set_random_generator(&random_);
   }
 
   void SetUp() override {
@@ -137,6 +136,8 @@
     }
   }
 
+  uint64_t random_seed_;
+  SimpleRandom random_;
   simulator::Simulator simulator_;
   simulator::QuicEndpoint bbr_sender_;
   simulator::QuicEndpoint competing_sender_;
@@ -148,9 +149,6 @@
   std::unique_ptr<simulator::SymmetricLink> competing_sender_link_;
   std::unique_ptr<simulator::SymmetricLink> receiver_link_;
 
-  uint64_t random_seed_;
-  SimpleRandom random_;
-
   // Owned by different components of the connection.
   const QuicClock* clock_;
   const RttStats* rtt_stats_;
diff --git a/quic/test_tools/simulator/simulator.cc b/quic/test_tools/simulator/simulator.cc
index fdb59db..61ae9a3 100644
--- a/quic/test_tools/simulator/simulator.cc
+++ b/quic/test_tools/simulator/simulator.cc
@@ -10,8 +10,10 @@
 namespace quic {
 namespace simulator {
 
-Simulator::Simulator()
-    : random_generator_(nullptr),
+Simulator::Simulator() : Simulator(nullptr) {}
+
+Simulator::Simulator(QuicRandom* random_generator)
+    : random_generator_(random_generator),
       alarm_factory_(this, "Default Alarm Manager"),
       run_for_should_stop_(false),
       enable_random_delays_(false) {
diff --git a/quic/test_tools/simulator/simulator.h b/quic/test_tools/simulator/simulator.h
index e21dd50..46f8077 100644
--- a/quic/test_tools/simulator/simulator.h
+++ b/quic/test_tools/simulator/simulator.h
@@ -22,6 +22,7 @@
 class Simulator : public QuicConnectionHelperInterface {
  public:
   Simulator();
+  explicit Simulator(QuicRandom* random_generator);
   Simulator(const Simulator&) = delete;
   Simulator& operator=(const Simulator&) = delete;
   ~Simulator() override;
