JSFiddle - React, Tailwind, and code Playground

HTML

<div>
<h1>Generador IMEI</h1>
Deja el nĂşmero base quietecito y mete en la siguiente casilla 5 n&uacute;meros al azar, da igual:<br />
<form>
N&uacute;mero base:&nbsp;&nbsp;&nbsp; <input id="base_number" style="width: 100px;" value="356002040" type="text"><br />
N&uacute;mero al azar: <input value="87557" name="SerialNumber" id="SerialNumber" maxlength="5" style="width: 100px;" type="text"><br /><hr />
<input value="Generar n&uacute;mero IMEI" id="GenerateIMEI" type="button"><br />
<input value="356002040875573" name="luhn" id="luhn" type="text">
</form>
</div>

JavaScript

var base_number = document.getElementById("base_number")
            var serialnumber = document.getElementById("SerialNumber");
            var GenerateIMEI = document.getElementById("GenerateIMEI");
            var luhn = document.getElementById("luhn");

            GenerateIMEI.onclick=function(){
                luhn.value = base_number.value;
                luhn.value += serialnumber.value;
                luhn.value += Calculate(luhn.value);
            }

            // Javascript code copyright 2009 by Fiach Reid : www.webtropy.com
            // This code may be used freely, as long as this copyright notice is intact.
            function Calculate(Luhn) {
                var sum = 0;
                for (i=0; i<Luhn.length; i++ ) {
                    sum += parseInt(Luhn.substring(i,i+1));
                }
                
                var delta = new Array (0,1,2,3,4,-4,-3,-2,-1,0);
                
                for (i=Luhn.length-1; i>=0; i-=2 ) {       
                    var deltaIndex = parseInt(Luhn.substring(i,i+1));
                    var deltaValue = delta[deltaIndex]; 
                    sum += deltaValue;
                }   
                
                var mod10 = sum % 10;
                mod10 = 10 - mod10; 
                
                if (mod10==10) {       
                    mod10=0;
                }
                return mod10;
            }