--- z-rand.org.c	2011-07-03 13:14:00.000000000 -0500
+++ z-rand.c	2011-07-04 21:43:06.000000000 -0500
@@ -469,3 +469,16 @@
 	rand_fixed = TRUE;
 	rand_fixval = val;
 }
+
+/*
+ * Another simple RNG that does not use any of the above state
+ * (so can be used without disturbing the game's RNG state)
+ */
+int getpid(void);
+u32b Rand_simple(u32b m) {
+  static time_t seed;
+  time_t v;
+  v = time(NULL);
+  seed = LCRNG(seed) + ((v << 16) ^ v ^ getpid());
+  return (seed%m);
+}
