Andrew Kuchling writes:

First, the RNG in whrandom.py sucks if you let it seed itself from the time.
The problem is the line:
			t = int((t&0xffffff) | (t>>24))
Since it ORs the two parts together, the resulting value has mostly
ON bits.  Change | to ^, and you don't lose any randomness.
diff --git a/Lib/whrandom.py b/Lib/whrandom.py
index bd2dcf7..95e88f3 100644
--- a/Lib/whrandom.py
+++ b/Lib/whrandom.py
@@ -50,7 +50,7 @@
 			# Initialize from current time
 			import time
 			t = long(time.time() * 256)
-			t = int((t&0xffffff) | (t>>24))
+			t = int((t&0xffffff) ^ (t>>24))
 			t, x = divmod(t, 256)
 			t, y = divmod(t, 256)
 			t, z = divmod(t, 256)