--- a/Cargo.toml
+++ b/Cargo.toml
@@ -65,3 +65,3 @@
 [dev-dependencies.fastrand]
-version = "1.3.4"
+version = "2"
 
--- a/src/format_str/tests.rs
+++ b/src/format_str/tests.rs
@@ -201,3 +201,3 @@
     /// Panics if the input slice is empty
-    fn pick<'a, T>(&self, slice: &'a [T]) -> &'a T;
+    fn pick<'a, T>(&mut self, slice: &'a [T]) -> &'a T;
 
@@ -206,3 +206,3 @@
     /// Panics if there are no `chars` in the `bounds`
-    fn char_(&self, bounds: RangeInclusive<char>) -> char;
+    fn char_(&mut self, bounds: RangeInclusive<char>) -> char;
 }
@@ -210,3 +210,3 @@
 impl RngExt for Rng {
-    fn pick<'a, T>(&self, slice: &'a [T]) -> &'a T {
+    fn pick<'a, T>(&mut self, slice: &'a [T]) -> &'a T {
         &slice[self.usize(0..slice.len())]
@@ -214,3 +214,3 @@
 
-    fn char_(&self, bounds: RangeInclusive<char>) -> char {
+    fn char_(&mut self, bounds: RangeInclusive<char>) -> char {
         if let None = bounds.clone().next() {
@@ -230,3 +230,3 @@
 fn generate_input() -> String {
-    let rng = Rng::new();
+    let mut rng = Rng::new();
     let len = rng.usize(0..40);
