JSFiddle - React, Tailwind, and code Playground

HTML

<input type="text" id="pokemonPS" placeholder="vida máxima del pokemón"/>
<input type="text" id="pokemonCPS" placeholder="vida actual del pokemón"/>
<input type="range" id="pokemonCRatio" min="3" max="255"/>
<select id="pokeBallRatio">Poke Ball:
    <option value="1.0">Poke Ball</option>
    <option value="1.0">Amigo Ball</option>
    <option value="1.5">Compti Ball</option>
    <option value="1.5">Super Ball</option>
    <option value="1.5">Safari Ball</option>
    <option value="2.0">Ultra Ball</option>
    <option value="3.0">Cebo Ball</option>
    <option value="8.0">Amor Ball</option>
</select>
<select id="bonusState">Estado:
    <option value="1.0">Ninguno</option>
    <option value="1.5">Paralizado</option>
    <option value="1.5">Quemado</option>
    <option value="1.5">Envenenado</option>
    <option value="2.0">Congelado</option>
    <option value="2.0">Dormido</option>
</select>
<button id="calcRate">Capturar!</button>
<section class="log"></section>

CSS

.log {
    padding: .5re 1rem;
}

JavaScript

document.querySelector('#calcRate').addEventListener('click', function() {
    capturePokemon();    
});

function capturePokemon() {
    var pokemonPS = parseInt(document.querySelector('#pokemonPS').value);
    var pokemonCPS = parseInt(document.querySelector('#pokemonCPS').value);
    var pokemonCRatio = parseInt(document.querySelector('#pokemonCRatio').value);
    var pokeBallRatio = parseFloat(document.querySelector('#pokeBallRatio').value);
    var bonusState = parseFloat(document.querySelector('#bonusState').value);
    var fail = false;
    
    // calculamos el ratio de captura
    var a = (((3 * pokemonPS - 2 * pokemonCPS) * pokemonCRatio *
              pokeBallRatio) / (3 * pokemonPS)) * bonusState;
    
    // si a > 255, el pokemón es capturado
    if(a > 255) {
        log('Pokemón capturado!');
        return false;
    }
   
    // si !a  > 255, calcuamos b
    var b = Math.pow(2, 16) * sqrtN(a / (Math.pow(2, 8) - 1), 4);
    
    // generamos los números aleatorios
    for(var i=1; i<=3; i++) {
        var random = Math.random() * 65536;
        console.log(random);
        if(random > b) {
            fail = true;
        }
    }
    
    if(fail) {
        log('Lo siento, el pokemón se escapó');
    } else {
        log('El pokemón ha sido capturado luego de 3 rebotes!');
    }
}

function log(message) {
   document.querySelector('.log').innerText = message;   
}

function sqrtN(value, exp) {
    return Math.exp(Math.log(value) / exp);
}