     # please note the order of following assertions is important
     seed1 = {1406, 407_414, 139_258}
     seed2 = {1306, 421_106, 567_597}
-    :rand.seed(:exrop, seed1)
+    :rand.seed(:exsss, seed1)
+    assert Enum.random([1, 2]) == 1
     assert Enum.random([1, 2]) == 2
-    assert Enum.random([1, 2]) == 2
-    :rand.seed(:exrop, seed1)
-    assert Enum.random([1, 2]) == 2
+    :rand.seed(:exsss, seed1)
+    assert Enum.random([1, 2]) == 1
     assert Enum.random([1, 2, 3]) == 1
-    assert Enum.random([1, 2, 3, 4]) == 1
-    assert Enum.random([1, 2, 3, 4, 5]) == 2
-    :rand.seed(:exrop, seed2)
-    assert Enum.random([1, 2]) == 2
-    assert Enum.random([1, 2, 3]) == 1
-    assert Enum.random([1, 2, 3, 4]) == 1
-    assert Enum.random([1, 2, 3, 4, 5]) == 1
+    assert Enum.random([1, 2, 3, 4]) == 2
+    assert Enum.random([1, 2, 3, 4, 5]) == 3
+    :rand.seed(:exsss, seed2)
+    assert Enum.random([1, 2]) == 1
+    assert Enum.random([1, 2, 3]) == 2
+    assert Enum.random([1, 2, 3, 4]) == 4
+    assert Enum.random([1, 2, 3, 4, 5]) == 3
   end
 
   test "reduce/2" do


  test "shuffle/1" do
    # set a fixed seed so the test can be deterministic
    :rand.seed(:exrop, {1374, 347_975, 449_264})
    assert Enum.shuffle(1..5) == [3, 1, 4, 2, 5]
    assert Enum.shuffle(1..10//2) == [3, 9, 7, 5, 1]
  end

  test "slice/2" do

    # please note the order of following assertions is important
    seed1 = {1406, 407_414, 139_258}
    seed2 = {1406, 421_106, 567_597}
    :rand.seed(:exsss, seed1)
    assert Enum.take_random(1..3, 1) == [3]
    :rand.seed(:exsss, seed1)
    assert Enum.take_random(1..3, 2) == [3, 1]
    :rand.seed(:exsss, seed1)
    assert Enum.take_random(1..3, 3) == [3, 1, 2]
    :rand.seed(:exsss, seed1)
    assert Enum.take_random(1..3, 4) == [3, 1, 2]
    :rand.seed(:exsss, seed1)
    assert Enum.take_random(3..1, 1) == [1]
    :rand.seed(:exsss, seed2)
    assert Enum.take_random(1..3, 1) == [1]
    :rand.seed(:exsss, seed2)
    assert Enum.take_random(1..3, 2) == [1, 3]
    :rand.seed(:exsss, seed2)
    assert Enum.take_random(1..3, 3) == [1, 3, 2]
    :rand.seed(:exsss, seed2)
    assert Enum.take_random(1..3, 4) == [1, 3, 2]

    # make sure optimizations don't change fixed seeded tests
    :rand.seed(:exsss, {101, 102, 103})
    one = Enum.take_random(1..100, 1)
    :rand.seed(:exsss, {101, 102, 103})
    two = Enum.take_random(1..100, 2)
    assert hd(one) == hd(two)
  end
