diff --git a/manifest.dhall b/manifest.dhall
index 8de89ae76ec060efa948a7dc019b51f6e8a53ee5..fe7a605508ecb8b06ff70cbf0b060fc5ad887afe 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -379,6 +379,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "monad-par" "0.3.5"
     , callHackage "monoid-subclasses" "1.1.3"
     , callHackage "mono-traversable" "1.0.15.3"
+    , callHackage "mwc-random" "0.15.0.2"
     , callHackage "network-byte-order" "0.1.6"
     , callHackage "network-uri" "2.6.4.1"
     , callHackage "newtype-generics" "0.6.2"
diff --git a/overlay.nix b/overlay.nix
index 55de0b006ee32737c4448e92a343b969531ceec2..b5006b4e88b319d329903015b99fb570e281fc47 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -485,6 +485,8 @@ final: prev: with pkgs.haskell.lib; {
 
   monoid-subclasses = prev.callPackage (./pkgs/monoid-subclasses.nix) { };
 
+  mwc-random = prev.callPackage (./pkgs/mwc-random.nix) { };
+
   net-mqtt = prev.callPackage (./pkgs/net-mqtt.nix) { };
 
   network-byte-order = prev.callPackage (./pkgs/network-byte-order.nix) { };
diff --git a/pkgs/mwc-random.nix b/pkgs/mwc-random.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a27e17cc0cb21b8e5145ef6e6f47a8d0864de08a
--- /dev/null
+++ b/pkgs/mwc-random.nix
@@ -0,0 +1,65 @@
+{ mkDerivation
+, base
+, bytestring
+, doctest
+, gauge
+, lib
+, math-functions
+, mersenne-random
+, primitive
+, QuickCheck
+, random
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, time
+, vector
+}:
+mkDerivation {
+  pname = "mwc-random";
+  version = "0.15.0.2";
+  sha256 = "35d64d5d6f8e93321d36952cf9ab64e21a9cad642ba39aa7378d88aa08afc25b";
+  revision = "1";
+  editedCabalFile = "15q5pax8708shpmmf2ql6ximsidzmfsrqkf4ix3dljz65jvhz7hh";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    math-functions
+    primitive
+    random
+    time
+    vector
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    doctest
+    primitive
+    QuickCheck
+    random
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    vector
+  ];
+  benchmarkHaskellDepends = [
+    base
+    gauge
+    mersenne-random
+    random
+    vector
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/bos/mwc-random";
+  description = "Fast, high quality pseudo random number generation";
+  license = lib.licenses.bsd3;
+  broken = false;
+}