From af81a4f9978d50ce5683b84a986cc5db30dcbf65 Mon Sep 17 00:00:00 2001 From: d8uv Date: Tue, 28 Jan 2014 12:35:30 -0800 Subject: [PATCH] Change random sort to use Fisher-Yates shuffle --- src/jquery.cycle2.core.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/jquery.cycle2.core.js b/src/jquery.cycle2.core.js index ae2e67a..1c926e6 100755 --- a/src/jquery.cycle2.core.js +++ b/src/jquery.cycle2.core.js @@ -84,7 +84,17 @@ $.fn.cycle.API = { slides = slides.jquery ? slides : opts.container.find( slides ); if ( opts.random ) { - slides.sort(function() {return Math.random() - 0.5;}); + slides = (function(a) { // Fisher-Yates shuffle + var i, j, t; + i = a.length; + while (--i > 0) { + j = ~~(Math.random() * (i + 1)); + t = a[j]; + a[j] = a[i]; + a[i] = t; + } + return a; + })(slides); } opts.API.add( slides );