Defino previamente los valores inferior y superior para tener un rango y mediante la operación de multiplicar el número aleatorio contra la diferencia entre el inferior al superior más uno obtengo un valor que esta por debajo del rango inferior por tanto le sumo el rango inferior al final y obtengo un número dentro del rango deseado:
// Variables
let maxIntentos = 3;
let inferior = 30;
let superior = 40;
let numeroSecreto = Math.floor(Math.random() * (superior - inferior + 1)) + inferior;
let numeroUsuario = 0;
let intentos = 1;
let intentoTxt = "intento"
while (numeroSecreto != numeroUsuario) {
numeroUsuario = parseInt(prompt(`Intento #${intentos} para adivinar el número secreto, Indica un número entre ${inferior} y ${superior} por favor:`));
if (numeroSecreto == numeroUsuario) {
// La condición se cumplio
alert(`Acertaste el número secreto es {${numeroSecreto}}, y lo lograste en ${intentos} ${intentos == 1 ? intentoTxt : intentoTxt + "s"}.`);
} else {
if (numeroUsuario > numeroSecreto) {
alert(`El número secreto es menor`)
} else {
alert(`El número secreto es mayor`)
}
intentos++;
if (intentos > maxIntentos) {
alert(`No lo lograste en ${intentos - 1} ${intentoTxt + "s"}, el número era ${numeroSecreto}`);
break;
}
}
}