JSFiddle - React, Tailwind, and code Playground

HTML

<html><head>
        <title>Goldy</title>
        <script type="text/javascript">
    var i, j, words, textNodes, punct = /[^a-zA-Z0-9]/;

    Array.prototype.shuffle = function() {
        for (var i = 0; i < this.length; i++) {
            var j = i;
            while (j == i) {
                j = Math.floor(Math.random() * this.length);
            }
            var tmp = this[i];
            this[i] = this[j];
            this[j] = tmp;
        }
        return this;
    };

    String.prototype.shuffle = function() {
        return this.split('').shuffle().join('');
    };

    function transverse(element, array) {
        if (!array) array = [];
        if (element.nodeType === 3) {
            array.push(element);
        } else {
            for (var i = 0; i < element.childNodes.length; i++) {
                transverse(element.childNodes[i], array);
            }
        }
        return array;
    }

    //garble(transverse(document.documentElement)[9].data)
    function garble(str) {
        if (!str) return '';
        str = str.trim();
        if (/-/.test(str)) {
            str = str.split('-');
            for (var i = 0; i < str.length; i++) {
                str[i] = garble(str[i]);
            }
            return str.join('-')
        }
        if (punct.test(str.charAt(0))) {
            return str.charAt(0) + garble(str.slice(1));
        }
        if (punct.test(str.charAt(str.length - 1))) {
            return garble(str.slice(0, -1)) + str.charAt(str.length - 1);
        }
        if (str.length < 4) return str;
        if (str.length === 4) return str.charAt(0) + str.charAt(2) + str.charAt(1) + str.charAt(3)
        return str.charAt(0) + str.substr(1, str.length - 2).shuffle() +
            str.charAt(str.length - 1);
    }


    window.onload = function() {
        textNodes = transverse(document.documentElement);
        for (i = 0; i < textNodes.length; i++) {
            words = textNodes[i].data.split(' ');
            for (j =...