diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,9 @@
+# 0.1.3
+
+- Use system specific entropy/randomess sources to initialise the default generator.
+  Specifically `SecRandomCopyBytes` on Apple platforms and
+  `RtlGenRandom` on Windows.
+
 # 0.1.2
 
 - Use `getentropy` for initialisation on unix-like systems (i.e. not Windows).
diff --git a/cbits-apple/init.c b/cbits-apple/init.c
new file mode 100644
--- /dev/null
+++ b/cbits-apple/init.c
@@ -0,0 +1,8 @@
+#include <stdint.h>
+#include <Security/SecRandom.h>
+
+uint64_t splitmix_init() {
+	uint64_t result;
+	int r = SecRandomCopyBytes(kSecRandomDefault, sizeof(uint64_t), &result);
+	return r == errSecSuccess ? result : 0xfeed1000;
+}
diff --git a/cbits-unix/init.c b/cbits-unix/init.c
--- a/cbits-unix/init.c
+++ b/cbits-unix/init.c
@@ -1,10 +1,6 @@
 #include <stdint.h>
 #include <unistd.h>
-
-/* for macos */
-#ifdef __APPLE__
 #include <sys/random.h>
-#endif
 
 uint64_t splitmix_init() {
 	uint64_t result;
diff --git a/cbits-win/init.c b/cbits-win/init.c
--- a/cbits-win/init.c
+++ b/cbits-win/init.c
@@ -1,28 +1,9 @@
 #include <stdint.h>
-
 #include <windows.h>
+#include <ntsecapi.h>
 
 uint64_t splitmix_init() {
-    /* Handy list at https://stackoverflow.com/a/3487338/1308058 */
-
-    uint64_t a = GetCurrentProcessId(); /* DWORD */
-    uint64_t b = GetCurrentThreadId(); /* DWORD */
-    uint64_t c = GetTickCount(); /* DWORD */
-
-    SYSTEMTIME t = {0,0,0,0,0,0,0,0};
-    GetSystemTime(&t);
-
-    LARGE_INTEGER i;
-    QueryPerformanceCounter(&i);
-
-    return a ^ (b << 32) ^ (c << 16)
-        ^ ((uint64_t) t.wYear         << 56)
-        ^ ((uint64_t) t.wMonth        << 48)
-        ^ ((uint64_t) t.wDayOfWeek    << 40)
-        ^ ((uint64_t) t.wDay          << 32)
-        ^ ((uint64_t) t.wHour         << 24)
-        ^ ((uint64_t) t.wMinute       << 16)
-        ^ ((uint64_t) t.wSecond       << 8)
-        ^ ((uint64_t) t.wMilliseconds << 0)
-        ^ ((uint64_t) i.QuadPart);
+	uint64_t result;
+	int r = RtlGenRandom(&result, sizeof(uint64_t));
+	return r ? result : 0xfeed1000;
 }
diff --git a/splitmix.cabal b/splitmix.cabal
--- a/splitmix.cabal
+++ b/splitmix.cabal
@@ -1,6 +1,6 @@
-cabal-version:      >=1.10
+cabal-version:      2.4
 name:               splitmix
-version:            0.1.2
+version:            0.1.3
 synopsis:           Fast Splittable PRNG
 description:
   Pure Haskell implementation of SplitMix described in
@@ -26,28 +26,30 @@
   (the mixing functions are easily inverted, and two successive outputs
   suffice to reconstruct the internal state).
 
-license:            BSD3
+license:            BSD-3-Clause
 license-file:       LICENSE
 maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
 bug-reports:        https://github.com/haskellari/splitmix/issues
 category:           System, Random
 build-type:         Simple
 tested-with:
-    GHC ==8.6.5
-     || ==8.8.4
-     || ==8.10.4
-     || ==9.0.2
-     || ==9.2.8
-     || ==9.4.8
-     || ==9.6.7
-     || ==9.8.4
-     || ==9.10.2
-     || ==9.12.2
+  GHC ==8.6.5
+   || ==8.8.4
+   || ==8.10.4
+   || ==9.0.2
+   || ==9.2.8
+   || ==9.4.8
+   || ==9.6.7
+   || ==9.8.4
+   || ==9.10.2
+   || ==9.12.2
 
-extra-source-files:
+extra-doc-files:
   Changelog.md
-  make-hugs.sh
   README.md
+
+extra-source-files:
+  make-hugs.sh
   test-hugs.sh
 
 flag optimised-mixer
@@ -72,7 +74,7 @@
   -- ghc-options: -fplugin=DumpCore -fplugin-opt DumpCore:core-html
 
   build-depends:
-      base     >=4.12.0.0 && <4.22
+    , base     >=4.12.0.0 && <4.22
     , deepseq  >=1.4.4.0  && <1.6
 
   if flag(optimised-mixer)
@@ -92,6 +94,10 @@
       if os(windows)
         c-sources: cbits-win/init.c
 
+      elif (os(osx) || os(ios))
+        c-sources: cbits-apple/init.c
+        ld-options: -framework Security
+
       else
         c-sources: cbits-unix/init.c
 
@@ -110,7 +116,7 @@
   hs-source-dirs:   bench
   main-is:          Bench.hs
   build-depends:
-      base
+    , base
     , containers  >=0.6.0.1 && <0.8
     , criterion   >=1.6.0.0 && <1.7
     , random
@@ -124,7 +130,7 @@
   hs-source-dirs:   bench
   main-is:          SimpleSum.hs
   build-depends:
-      base
+    , base
     , random
     , splitmix
 
@@ -136,7 +142,7 @@
   main-is:          Range.hs
   other-modules:    Data.Bits.Compat
   build-depends:
-      base
+    , base
     , random
     , splitmix
 
@@ -147,7 +153,7 @@
   hs-source-dirs:   tests
   main-is:          Examples.hs
   build-depends:
-      base
+    , base
     , HUnit     >=1.6.0.0 && <1.7
     , splitmix
 
@@ -162,7 +168,7 @@
     Uniformity
 
   build-depends:
-      base
+    , base
     , containers            >=0.4.0.0 && <0.8
     , HUnit                 >=1.6.0.0 && <1.7
     , math-functions        >=0.3.3.0 && <0.4
@@ -177,7 +183,7 @@
   hs-source-dirs:   tests
   main-is:          SplitMixPi.hs
   build-depends:
-      base
+    , base
     , splitmix
 
 test-suite montecarlo-pi-32
@@ -187,7 +193,7 @@
   hs-source-dirs:   tests
   main-is:          SplitMixPi32.hs
   build-depends:
-      base
+    , base
     , splitmix
 
 test-suite splitmix-dieharder
@@ -197,15 +203,15 @@
   hs-source-dirs:   tests
   main-is:          Dieharder.hs
   build-depends:
-      async                  >=2.2.1    && <2.3
+    , async       >=2.2.1    && <2.3
     , base
-    , bytestring             >=0.10.8.2  && <0.13
+    , bytestring  >=0.10.8.2 && <0.13
     , deepseq
-    , process                >=1.6.0.0  && <1.7
+    , process     >=1.6.0.0  && <1.7
     , random
     , splitmix
-    , tf-random              >=0.5      && <0.6
-    , vector                 >=0.13.0.0 && <0.14
+    , tf-random   >=0.5      && <0.6
+    , vector      >=0.13.0.0 && <0.14
 
 test-suite splitmix-testu01
   if !os(linux)
@@ -219,7 +225,7 @@
   c-sources:        tests/cbits/testu01.c
   extra-libraries:  testu01
   build-depends:
-      base
+    , base
     , base-compat-batteries  >=0.10.5 && <0.15
     , splitmix
 
@@ -230,6 +236,6 @@
   hs-source-dirs:   tests
   main-is:          Initialization.hs
   build-depends:
-      base
+    , base
     , HUnit     >=1.6.0.0 && <1.7
     , splitmix
