Como criar playlist de áudio aleatório?

http://pt.stackoverflow.com/questions/34185/como-criar-playlist-de-%C3%A1udio-aleat%C3%B3rio

HTML

<div id="now"></div>

<audio preload="none" id="player" controls="controls"></audio>

<button id="next">next</button>

<p id="playlist"></p>

CSS

body {
    font-family: sans;
    background-color: #ccc;
}
div, p {
    padding: 10px;
}
p {
    background-color: #c38833;
    line-height: 25px;
    margin-top: 10px;
}
button {
    vertical-align: top;
    padding: 5px;
}
#playlist {
    counter-reset: my-counter -1;
}
#playlist dt:before {
    content: counter(my-counter, decimal-leading-zero) ". ";
    counter-increment: my-counter;
}

JavaScript

var _now = document.getElementById('now'),
    _player = document.getElementById('player'),
    _next = document.getElementById('next'),
    _playlist = document.getElementById('playlist'),
    tracks_clone,
    mp3uri = 'http://www.stephaniequinn.com/Music/',
    tracks = [
        'Commercial%20DEMO%20-%2005.mp3',
        'Commercial%20DEMO%20-%2006.mp3',
        'Commercial%20DEMO%20-%2007.mp3',
        'Commercial%20DEMO%20-%2008.mp3',
        'Commercial%20DEMO%20-%2009.mp3',
        'Commercial%20DEMO%20-%2010.mp3',
        'Commercial%20DEMO%20-%2011.mp3',
        'Commercial%20DEMO%20-%2012.mp3',
        'Commercial%20DEMO%20-%2013.mp3',
        'Handel%20Royal%20Fireworks%20-%2007.mp3',
        'Mouret%20-%20Rondeau.mp3',
        'The%20Irish%20Washerwoman.mp3',
        'Vivaldi%20-%20Spring%20from%20Four%20Seasons.mp3'       
    ];

function playNext() {
    if( tracks_clone.length === 0 ) {
        tracks_clone = tracks.slice(0);
    }
    var randnum = Math.floor(Math.random() * tracks_clone.length);
    var track = tracks_clone[randnum];
    _now.innerHTML = '<b>Random selected</b>: #' + randnum + '<br><b>Playing</b>: ' + decodeURIComponent(track).replace('.mp3','');
    tracks_clone.splice(randnum, 1);
    setTimeout( printList, 3000 );
    _player.src = mp3uri + track;
    return _player.play();
}
function printList() {
    _playlist.innerHTML = '<dl><dt>' + decodeURIComponent(tracks_clone.join('</dt><dt>')) + '</dt></dl>';
}
function initPlayer() {
    tracks_clone = tracks.slice(0);
    _player.addEventListener('ended', playNext);
    _next.addEventListener('click', playNext, false);
    printList();
    playNext();
}

window.addEventListener('load', initPlayer);