lib/libs.js
function shuffle (s, splitter) {
                    var a = s.split(typeof splitter === 'string' ? splitter : ''), n = a.length,
                    replaceSplits = n - 1;

                    for(var i = n - 1; i > 0; i--) {
                        var j = Math.floor(Math.random() * (i + 1)),
                            tmp = a[i];

                        a[i] = a[j];
                        a[j] = tmp;
                    }

                    for(var k = 0; k < replaceSplits; k++) a.splice(libs.number.randomIntInRange(0, a.length), 0, splitter);
                    return a.join('');
                }
function shuffle (s, splitter) {
                    var a = s.split(typeof splitter === 'string' ? splitter : ''), n = a.length,
                    replaceSplits = n - 1;

                    for(var i = n - 1; i > 0; i--) {
                        var j = Math.floor(Math.random() * (i + 1)),
                            tmp = a[i];

                        a[i] = a[j];
                        a[j] = tmp;
                    }

                    for(var k = 0; k < replaceSplits; k++) a.splice(libs.number.randomIntInRange(0, a.length), 0, splitter);
                    return a.join('');
                }
function shuffle ( s , splitter ) { var a = s . split ( typeof splitter === 'string' ? splitter : '' ) , n = a . length , replaceSplits = n - 1 ; for ( var i = n - 1 ; i > 0 ; i -- ) { var j = Math . floor ( Math . random ( ) * ( i + 1 ) ) , tmp = a [ i ] ; a [ i ] = a [ j ] ; a [ j ] = tmp ; } for ( var k = 0 ; k < replaceSplits ; k ++ ) a . splice ( libs . number . randomIntInRange ( 0 , a . length ) , 0 , splitter ) ; return a . join ( '' ) ; }
Shuffles a string
@param {String} s The string to operate on.
@param {String} splitter A string used to split the string, to tokenize it before shuffling.
@return {String} The mixed up string.
Shuffles a string