diff --git a/src/rngs/adapter/read.rs b/src/rngs/adapter/read.rs
index a5b31cc..5b4e5f0 100644
--- a/src/rngs/adapter/read.rs
+++ b/src/rngs/adapter/read.rs
@@ -56,6 +56,12 @@
 }
 
 impl<R: Read> RngCore for ReadRng<R> {
+    fn next_bool(&mut self) -> bool {
+        let mut buf = [0; 1];
+        self.fill_bytes(&mut buf);
+        (buf[0] & 1) == 1
+    }
+
     fn next_u32(&mut self) -> u32 {
         impls::next_u32_via_fill(self)
     }
diff --git a/src/rngs/adapter/reseeding.rs b/src/rngs/adapter/reseeding.rs
index 1977cb3..6560233 100644
--- a/src/rngs/adapter/reseeding.rs
+++ b/src/rngs/adapter/reseeding.rs
@@ -106,10 +106,14 @@
 // implements RngCore, but we can't specify that because ReseedingCore is private
 impl<R, Rsdr: RngCore> RngCore for ReseedingRng<R, Rsdr>
 where
-    R: BlockRngCore<Item = u32> + SeedableRng,
-    <R as BlockRngCore>::Results: AsRef<[u32]> + AsMut<[u32]>,
+    R: BlockRngCore + SeedableRng
 {
     #[inline(always)]
+    fn next_bool(&mut self) -> bool {
+        self.0.next_bool()
+    }
+
+    #[inline(always)]
     fn next_u32(&mut self) -> u32 {
         self.0.next_u32()
     }
@@ -161,7 +165,6 @@
     R: BlockRngCore + SeedableRng,
     Rsdr: RngCore,
 {
-    type Item = <R as BlockRngCore>::Item;
     type Results = <R as BlockRngCore>::Results;
 
     fn generate(&mut self, results: &mut Self::Results) {
@@ -172,7 +175,7 @@
             // returning from a non-inlined function.
             return self.reseed_and_generate(results, global_fork_counter);
         }
-        let num_bytes = results.as_ref().len() * size_of::<Self::Item>();
+        let num_bytes = results.as_ref().len();
         self.bytes_until_reseed -= num_bytes as i64;
         self.inner.generate(results);
     }
@@ -242,7 +245,7 @@
             trace!("Reseeding RNG (periodic reseed)");
         }
 
-        let num_bytes = results.as_ref().len() * size_of::<<R as BlockRngCore>::Item>();
+        let num_bytes = results.as_ref().len();
 
         if let Err(e) = self.reseed() {
             warn!("Reseeding RNG failed: {}", e);
diff --git a/src/rngs/mock.rs b/src/rngs/mock.rs
index a1745a4..6f2ae50 100644
--- a/src/rngs/mock.rs
+++ b/src/rngs/mock.rs
@@ -47,6 +47,11 @@
 
 impl RngCore for StepRng {
     #[inline]
+    fn next_bool(&mut self) -> bool {
+        (self.next_u64() & 1) == 1
+    }
+
+    #[inline]
     fn next_u32(&mut self) -> u32 {
         self.next_u64() as u32
     }
diff --git a/src/rngs/std.rs b/src/rngs/std.rs
index a90d86f..803abac 100644
--- a/src/rngs/std.rs
+++ b/src/rngs/std.rs
@@ -38,6 +38,11 @@
 
 impl RngCore for StdRng {
     #[inline(always)]
+    fn next_bool(&mut self) -> bool {
+        self.0.next_bool()
+    }
+
+    #[inline(always)]
     fn next_u32(&mut self) -> u32 {
         self.0.next_u32()
     }
diff --git a/src/rngs/thread.rs b/src/rngs/thread.rs
index 3a216bc..f7b0cf2 100644
--- a/src/rngs/thread.rs
+++ b/src/rngs/thread.rs
@@ -94,6 +94,11 @@
 
 impl RngCore for ThreadRng {
     #[inline(always)]
+    fn next_bool(&mut self) -> bool {
+        unsafe { self.rng.as_mut().next_bool() }
+    }
+
+    #[inline(always)]
     fn next_u32(&mut self) -> u32 {
         unsafe { self.rng.as_mut().next_u32() }
     }
