diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,8 @@
+0.4.2 (16 January 2016)
+-----------------------
+
+  - Add `MonadPlus` and `Alternative` instances for `RandT`.
+
 0.4.1 (20 November 2015)
 ------------------------
 
diff --git a/Control/Monad/Random.hs b/Control/Monad/Random.hs
--- a/Control/Monad/Random.hs
+++ b/Control/Monad/Random.hs
@@ -72,11 +72,15 @@
 -- | A monad transformer which adds a random number generator to an
 -- existing monad.
 newtype RandT g m a = RandT (StateT g m a)
-    deriving (Functor, Monad, MonadTrans, MonadIO, MonadFix, MonadReader r, MonadWriter w)
+    deriving (Functor, Monad, MonadPlus, MonadTrans, MonadIO, MonadFix, MonadReader r, MonadWriter w)
 
-instance (Functor m,Monad m) => Applicative (RandT g m) where
+instance (Functor m, Monad m) => Applicative (RandT g m) where
   pure = return
   (<*>) = ap
+
+instance (Functor m, MonadPlus m) => Alternative (RandT g m) where
+  empty = mzero
+  (<|>) = mplus
 
 -- | Lift arbitrary action to RandT
 liftRandT :: (g -> m (a, g)) -- ^ action returning value and new generator state
diff --git a/MonadRandom.cabal b/MonadRandom.cabal
--- a/MonadRandom.cabal
+++ b/MonadRandom.cabal
@@ -1,5 +1,5 @@
 name:                MonadRandom
-version:             0.4.1
+version:             0.4.2
 synopsis:            Random-number generation monad.
 description:         Support for computations which consume random values.
 license:             OtherLicense
