diff --git a/preamble.cabal b/preamble.cabal
--- a/preamble.cabal
+++ b/preamble.cabal
@@ -1,5 +1,5 @@
 name:                  preamble
-version:               0.0.25
+version:               0.0.26
 synopsis:              Yet another prelude.
 description:           A prelude built on basic-prelude.
 homepage:              https://github.com/swift-nav/preamble
@@ -28,7 +28,8 @@
                      , Preamble.Types.Trans
   default-language:    Haskell2010
   ghc-options:         -Wall
-  build-depends:       aeson
+  build-depends:       MonadRandom
+                     , aeson
                      , base == 4.8.*
                      , basic-prelude
                      , exceptions
diff --git a/src/Preamble/Types/Ctx.hs b/src/Preamble/Types/Ctx.hs
--- a/src/Preamble/Types/Ctx.hs
+++ b/src/Preamble/Types/Ctx.hs
@@ -11,6 +11,7 @@
 
 import Control.Monad.Catch
 import Control.Monad.Logger
+import Control.Monad.Random
 import Control.Monad.Reader
 import Network.Socket
 import Preamble.Lens
@@ -32,6 +33,7 @@
 
 type MonadCtx c m =
   ( MonadMain m
+  , MonadRandom m
   , MonadReader c m
   , MonadLogger m
   , MonadCatch m
diff --git a/src/Preamble/Types/Trans.hs b/src/Preamble/Types/Trans.hs
--- a/src/Preamble/Types/Trans.hs
+++ b/src/Preamble/Types/Trans.hs
@@ -15,6 +15,7 @@
 import Control.Monad.Base
 import Control.Monad.Catch
 import Control.Monad.Logger
+import Control.Monad.Random
 import Control.Monad.Reader
 import Control.Monad.Trans.Control
 import Control.Monad.Trans.Resource
@@ -55,3 +56,13 @@
 instance MonadResource m => MonadResource (TransT c m) where
   liftResourceT = lift . liftResourceT
   {-# INLINE liftResourceT #-}
+
+instance MonadRandom m => MonadRandom (TransT c m) where
+  getRandom   = lift getRandom
+  {-# INLINE getRandom #-}
+  getRandomR  = lift . getRandomR
+  {-# INLINE getRandomR #-}
+  getRandoms  = lift getRandoms
+  {-# INLINE getRandoms #-}
+  getRandomRs = lift . getRandomRs
+  {-# INLINE getRandomRs #-}
