diff --git a/include/algorithm b/include/algorithm
index 74feafd..b895f03 100644
--- a/include/algorithm
+++ b/include/algorithm
@@ -2686,7 +2686,11 @@
         _D __uid;
         __rs_default __g = __rs_get();
         for (--__last, --__d; __first < __last; ++__first, --__d)
-            swap(*__first, *(__first + __uid(__g, _P(0, __d))));
+        {
+            difference_type __i = __uid(__g, _P(0, __d));
+            if (__i != difference_type(0))
+                swap(*__first, *(__first + __i));
+        }
     }
 }
 
@@ -2704,7 +2708,10 @@
     if (__d > 1)
     {
         for (--__last; __first < __last; ++__first, --__d)
-            swap(*__first, *(__first + __rand(__d)));
+        {
+            difference_type __i = __rand(__d);
+            swap(*__first, *(__first + __i));
+        }
     }
 }
 
@@ -2720,7 +2727,11 @@
     {
         _D __uid;
         for (--__last, --__d; __first < __last; ++__first, --__d)
-            swap(*__first, *(__first + __uid(__g, _P(0, __d))));
+        {
+            difference_type __i = __uid(__g, _P(0, __d));
+            if (__i != difference_type(0))
+                swap(*__first, *(__first + __i));
+        }
     }
 }
 
