JS: Randomize Element Children

By Xah Lee. Date: . Last updated: .

Here's a fast function to randomize a element's children. The element can be ul or ol list or any element.

Example:

Here's the code.

The code is fast, tested on over 1 thousand children elements.

ES2015 Version

const xah_randomize_children_f = ((nodeX) => {
    // nodeX can be any html element
    // randomize its children
    // http://xahlee.info/js/js_dom_randomize_list.html
    // version 2017-05-11

    const newNode = nodeX.cloneNode(true);
    const xChildren = newNode.children;
    const newNodeFrag = document.createDocumentFragment();

    while (xChildren.length > 0) {
        newNodeFrag.appendChild( xChildren [Math.floor(Math.random() * xChildren.length)] );
    };

    nodeX.innerHTML = "";
    nodeX.appendChild(newNodeFrag);
});

Pre ES2015 Version

function xah_randomize_children_f (nodeX) {
    // nodeX can be any html element
    // randomize its children
    // http://xahlee.info/js/js_dom_randomize_list.html
    // version 2017-05-11

    var newNode = nodeX.cloneNode(true);
    var xChildren = newNode.children;
    var newNodeFrag = document.createDocumentFragment();

    while (xChildren.length > 0) {
        newNodeFrag.appendChild( xChildren [Math.floor(Math.random() * xChildren.length)] );
    };

    nodeX.innerHTML = "";
    nodeX.appendChild(newNodeFrag);
}

[see JS: Replace All Children, createDocumentFragment]

[see JS: Random Array Element, Randomize Array]

Liket it? Put $5 at patreon.

Or, Buy JavaScript in Depth