diff --git a/manifest.dhall b/manifest.dhall
index 94d2403de6eb5c00eecc8806ba2635082e4a977d..c13d3c7e36aee8eb2df8f0ff2eda5674a1c0ddf0 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -263,6 +263,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "generic-monoid" "0.1.0.1"
     , callHackage "generic-optics-lite" "0.1"
     , callHackage "generic-optics" "2.2.1.0"
+    , callHackage "generic-random" "1.5.0.1"
     , callHackage "generics-sop" "0.5.1.2"
     , callHackage "genvalidity" "1.1.0.0"
     , callHackage "genvalidity-aeson" "1.0.0.1"
diff --git a/overlay.nix b/overlay.nix
index f32b89a68815f9a9cce260342ab45d32b008580b..bbb6be65eda7918d59da952a052bfc3f214569fe 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -337,6 +337,8 @@ self: with pkgs.haskell.lib; {
 
   generic-optics-lite = self.callPackage (./pkgs/generic-optics-lite.nix) { };
 
+  generic-random = self.callPackage (./pkgs/generic-random.nix) { };
+
   generically = self.callPackage (./pkgs/generically.nix) { };
 
   generics-sop = self.callPackage (./pkgs/generics-sop.nix) { };
diff --git a/pkgs/generic-random.nix b/pkgs/generic-random.nix
new file mode 100644
index 0000000000000000000000000000000000000000..08761099e3e204bd29747a50050e610ed75337cb
--- /dev/null
+++ b/pkgs/generic-random.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib, QuickCheck }:
+mkDerivation {
+  pname = "generic-random";
+  version = "1.5.0.1";
+  sha256 = "dd3451808788d99211edeac27287db5417e97234ce9221a2eb9ab02e9cfc2c0a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base QuickCheck ];
+  testHaskellDepends = [ base deepseq QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/lysxia/generic-random";
+  description = "Generic random generators for QuickCheck";
+  license = lib.licenses.mit;
+  broken = false;
+}