<head>
<script type="text/javascript">
!function (){
var quotes = ["quote0", "quote1", "quote2", "quote3", "quote4", "quote5", "quote6", "quote7", "quote8"],
shuffleAfter = quotes.length, cur = 0;
function shuffle( arr ) {
var l = arr.length, j, i, tmp;
for( i = l - 1; i > 0; --i ) {
j = ( Math.random() * ( i + 1 ) ) >>> 0;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
return arr;
}
function generateQuote(){
var r;
if( cur++ % shuffleAfter === 0 ) {
shuffle(quotes);
}
r = quotes.shift();
quotes.push( r );
return r;
}
window.generateQuote = generateQuote;
}()
</script>
</head>
<body>
<textarea id="quoteBox" readonly></textarea>
<button onClick="document.getElementById('quoteBox').value = generateQuote()">Entertainment & Hobbies</button>
</body>
Результаты вызова generateQuote () 27 раз:
2,9,7,5,8,1,3,4,6,9,6,1,7,5,4,3,2,8,3,1,6,5,2,7,9,4,8,2
Как видите, после полного цикла кавычки снова перемешиваются, и есть вероятность, чтота же самая цитата появится, если она была последней в последнем цикле и первой в новом цикле.Это должно быть намного лучше, чем тасование плейлиста в моем mp3-плеере, по крайней мере: P