JSFiddle - React, Tailwind, and code Playground
HTML
<button onclick="generate(40000);">Generate</button>
<table>
<tr>
<td>fail</td>
<td id="0">0</td>
</tr>
<tr>
<td>C0</td>
<td id="1">0</td>
</tr>
<tr>
<td>C1+</td>
<td id="2">0</td>
</tr>
<tr>
<td>total</td>
<td id="total">0</td>
</tr>
</table>
JavaScript
function generate(pull) {
pull = Math.floor(pull/160);
for(var n = 0; n < 100; n++){
var num = 0,
banner= 0,
pity = 0;
for(var i = 0; i < pull; i++) {
num++;
var prob = Math.random();
if( num > 73) {
var prob = 0.006 + (num-73)*0.06;
} else {
var prob = 0.006;
}
if(Math.random() < prob ) {
if(Math.random() < 0.5 | pity==1) {
banner++;
pity = 0;
} else {
pity++;
}
num = 0;
}
}
if(banner > 2) banner = 2;
count = document.getElementById(banner).innerHTML;
count++;
document.getElementById(banner).innerHTML = count;
total = document.getElementById("total").innerHTML;
total++;
document.getElementById("total").innerHTML = total;
}
}