diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 0.1.0.3
+
+- Support `random-1.2`
+
 ### 0.1.0.2
 
 - Lower `cabal-version` constraint to `3.0`
diff --git a/eventlog-live-otelcol.cabal b/eventlog-live-otelcol.cabal
--- a/eventlog-live-otelcol.cabal
+++ b/eventlog-live-otelcol.cabal
@@ -1,6 +1,6 @@
 cabal-version:   3.0
 name:            eventlog-live-otelcol
-version:         0.1.0.2
+version:         0.1.0.3
 synopsis:        Stream eventlog data to the OpenTelemetry Collector.
 description:
   This executable supports live streaming of eventlog data into
@@ -102,9 +102,12 @@
 library
   import:          language
   hs-source-dirs:  src
-  exposed-modules: GHC.Eventlog.Live.Otelcol
-  other-modules:   Paths_eventlog_live_otelcol
   autogen-modules: Paths_eventlog_live_otelcol
+  other-modules:
+    Paths_eventlog_live_otelcol
+    System.Random.Compat
+
+  exposed-modules: GHC.Eventlog.Live.Otelcol
   build-depends:
     , base                   >=4.16   && <4.22
     , bytestring             >=0.11   && <0.13
@@ -113,14 +116,14 @@
     , eventlog-live:options
     , eventlog-live:socket
     , ghc-events             >=0.20   && <0.21
-    , grapesy                >=1.1.0  && <1.2
+    , grapesy                >=1.0.0  && <1.2
     , hashable               >=1.4    && <1.6
     , hs-opentelemetry-otlp  >=0.1.0  && <0.2
     , lens-family            >=2.1.3  && <2.2
     , machines               >=0.7.4  && <0.8
     , optparse-applicative   >=0.19   && <0.20
     , proto-lens             >=0.7.1  && <0.8
-    , random                 >=1.3    && <1.4
+    , random                 >=1.2    && <1.4
     , text                   >=1.2    && <2.2
     , unordered-containers   >=0.2.20 && <0.3
 
diff --git a/src/GHC/Eventlog/Live/Otelcol.hs b/src/GHC/Eventlog/Live/Otelcol.hs
--- a/src/GHC/Eventlog/Live/Otelcol.hs
+++ b/src/GHC/Eventlog/Live/Otelcol.hs
@@ -59,7 +59,8 @@
 import Proto.Opentelemetry.Proto.Trace.V1.Trace qualified as OT
 import Proto.Opentelemetry.Proto.Trace.V1.Trace_Fields qualified as OT
 import System.IO qualified as IO
-import System.Random (StdGen, initStdGen, uniformByteString)
+import System.Random (StdGen, initStdGen)
+import System.Random.Compat (uniformByteString)
 import Text.Printf (printf)
 
 {- |
diff --git a/src/System/Random/Compat.hs b/src/System/Random/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/System/Random/Compat.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE CPP #-}
+
+module System.Random.Compat (
+  uniformByteString,
+) where
+
+#if MIN_VERSION_random(1,3,0)
+import System.Random (uniformByteString)
+#else
+import Data.Bifunctor (Bifunctor (first))
+import Data.ByteString (ByteString)
+import Data.ByteString.Short (fromShort)
+import System.Random (RandomGen (genShortByteString))
+
+uniformByteString :: RandomGen g => Int -> g -> (ByteString, g)
+uniformByteString n g = first fromShort (genShortByteString n g)
+#endif
