diff --git a/Framework/Random/RNGManager.cc b/Framework/Random/RNGManager.cc
index ddcccae37171c36c93158af286f85de91a75b6d4..1291dfd44f02300e06bccdcc9f9fc0c376ab2d56 100644
--- a/Framework/Random/RNGManager.cc
+++ b/Framework/Random/RNGManager.cc
@@ -33,6 +33,20 @@ std::stringstream corsika::random::RNGManager::dumpState() const {
 
   return buffer;
 }
+
+void corsika::random::RNGManager::SeedAll(uint64_t vSeed) {
+  for (auto& entry : rngs) { entry.second.seed(vSeed++); }
+}
+
+void corsika::random::RNGManager::SeedAll() {
+  std::random_device rd;
+
+  for (auto& entry : rngs) {
+    std::seed_seq sseq{rd(), rd(), rd(), rd(), rd(), rd()};
+    entry.second.seed(sseq);
+  }
+}
+
 /*
 void corsika::random::RNGManager::SetSeedSeq(std::string const& pStreamName,
                                              std::seed_seq const& pSeedSeq) {
diff --git a/Framework/Random/RNGManager.h b/Framework/Random/RNGManager.h
index da630c2531a2cb0dc5702dee9b837ba3aa13b99d..5d17a930483f003a8d92397ee055401d8739ac16 100644
--- a/Framework/Random/RNGManager.h
+++ b/Framework/Random/RNGManager.h
@@ -61,6 +61,14 @@ namespace corsika::random {
      * set seed_seq of \a pStreamName to \a pSeedSeq
      */
     // void SetSeedSeq(std::string const& pStreamName, std::seed_seq& const pSeedSeq);
+
+    /**
+     * Set explicit seeds for all currently registered streams. The actual seed values
+     * are incremented from \a vSeed.
+     */
+    void SeedAll(uint64_t vSeed);
+
+    void SeedAll(); //!< seed all currently registered streams with "real" randomness
   };
 
 } // namespace corsika::random