No sé qué estás haciendo dentro del bucle, la verdad. No tienes que dividir por \[ m \], sino tomar el módulo (el resto de la división entera por \[ m \]).
Deberías hacer algo así:
resultado = multiplicador*semilla + aditivo;
resultado = resultado % m;
Ese es tu primer número aleatorio. Si quieres generar más haces semilla=resultado y vuelves a aplicar la fórmula.
Eso te da números entre \[ 0 \] y \[ m-1 \] (ambos incluidos). Si quieres números entre \[ 1 \] y \[ 37 \], con \[ m>37 \], una cosa que puedes hacer es después de calcular el resultado sacar como número pseudoaleatorio este:
numero = (resultado % 37) + 1;
Pero cuidado, en la siguiente iteración debes usar como semilla la variable resultado, y no este número.