Issue #16674: random.getrandbits() is now 20-40% faster for small integers.
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index d8927c0..a729817 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -360,6 +360,9 @@
         return NULL;
     }
 
+    if (k <= 32)  /* Fast path */
+        return PyLong_FromUnsignedLong(genrand_int32(self) >> (32 - k));
+
     bytes = ((k - 1) / 32 + 1) * 4;
     bytearray = (unsigned char *)PyMem_Malloc(bytes);
     if (bytearray == NULL) {