Provably fair
CSGOCRASHER.com uses provably fair method, that doesn't allow us to manipulate the outcome once the game is started, below you can see how the hash is caluclated. For crach note that multiplier is missing decimal places - to get "real" multiplier, divide it by 100.
Crash:
  var hash = 'f08792e8719adabd88ae42618380a3827bfac3747ad3a9f39fbbdb68d6452817';
  var crash = 286;
  var secret = 'lzdUFlMwQKtyaEno5XYD';
  var shaObj = new jsSHA("SHA-256", "TEXT");
      shaObj.setHMACKey(secret, "TEXT");
      shaObj.update((crash / 100).toFixed(2).toString());
  if (hash === shaObj.getHMAC("HEX")) {
    console.log('Hash match!');
  } else {
    console.log('Hash doesn\'t match!');
  }
Roulette:
  var hash = 'b98313c321867bd62ce5090cdc5b1cd1ed9f50f362dc10fab0702735d8222912';
  var roll = 12;
  var secret = '1517cfda';
  var shaObj = new jsSHA("SHA-256", "TEXT");
      shaObj.setHMACKey(secret, "TEXT");
	  shaObj.update((roll).toFixed(2));
  if (hash === shaObj.getHMAC("HEX")) {
    console.log('Hash match!');
  } else {
    console.log('Hash doesn\'t match!');
  }
Crash
ID Secret Hash Multipiler
Roulette
ID Secret Hash Roll