--- zangband/src/z-rand.c
+++ zangband/src/z-rand.c
@@ -168,7 +168,7 @@
 			r = (Rand_state[j] += Rand_state[Rand_place]);
 
 			/* Hack -- extract a 28-bit "random" number */
-			r = (r >> 4) / n;
+			r = ((r >> 4) & 0x0FFFFFFF) / n;
 
 			/* Advance the index */
 			Rand_place = j;
