JSFiddle - React, Tailwind, and code Playground

HTML

<form onsubmit="return false;">
			<label for="gameHash">Game's Hash: (be sure to use a valid hash to get the real values)</label><br>
			<input type="text" name="gameHash" id="gameHash" /><br>
			<br>
			<label for="gameAmount">Amount of game to show from this hash:</label><br>
			<input type="number" min="1" step="1" name="gameAmount" id="gameAmount" value="100"/><br>
			<button onclick="refreshTable();">Refresh Table</button>
		</form>
		
		<table id="hashTable">
			<thead>
				<tr>
					<th>Game's hash</th>
					<th>Crash</th>
				</tr>
			</thead>
			<tbody id="tbody">
				
			</tbody>
		</table>
		
		<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/core.js"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/sha256.js"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/hmac.js"></script>

CSS

table {
		    	margin-top: 30px;
		        border-collapse: collapse;
		    }
		    
		    table, th, td {
		        border: 1px solid rgba(0,0,0,0.3);
		    }
		    
		    th, td{
		        padding: 5px;
		    }

JavaScript

function refreshTable(){
    var hash = document.getElementById("gameHash").value;
    var amount = document.getElementById("gameAmount").value;
    
    var tableBody = document.getElementById("tbody");
    tableBody.innerHTML = "";
    
    ajaxGenGameHashes(hash, amount, function(err, result){  
    				if (typeof(result) === 'string') {
                result = JSON.parse(result);
            }
            result.map(function (v) {
                var gameHash = v.hash;
                var gameCrash = v.crash;
                var clr = gameCrash > 1.97 ? 'green': (gameCrash < 1.97 ? 'red' : 'blue');
                tableBody.innerHTML += "<tr><td>"+gameHash+"</td><td style='background:" + clr + "'>"+gameCrash+"										</td></tr>";
            });
    });
}

function ajaxGenGameHashes(hash, amount, callback) {
        var ajaxReq = new XMLHttpRequest();
        if (!ajaxReq) alert("Your browser doesn't support xhr");
        ajaxReq.open("POST", "http://kkp7.com/gengamecrash", true);
        ajaxReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        ajaxReq.send("hash=" + hash + "&amount=" + amount);

        ajaxReq.onload = function () {
            if (ajaxReq.status === 200) {
                var response = ajaxReq.responseText;
                callback(null, response);
            } else callback(ajaxReq.responseText);
        }
}

function divisible(hash, mod) {
    // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
    var val = 0;

    var o = hash.length % 4;
    for (var i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
        val = ((val << 16) + parseInt(hash.substring(i, i+4), 16)) % mod;
    }

    return val === 0;
}

function genGameHash(serverSeed) {
    return CryptoJS.SHA256(serverSeed).toString()
};


function hmac(key, v) {
    var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
    return hmacHasher.finalize(v).toString();
}

function crashPointFromHash(serverSeed) {
    // see:...