La naturaleza del pokémon depende de la personalidad, que son los cuatro primeros bytes de la información del pokémon. La personalidad es completamente aleatoria. Hay, si no me equivoco, 25 naturalezas. La división de la personalidad entre 25 queda un resto que es el que determina la naturaleza. Pero de la personalidad dependen muchas cosas, como la habilidad, el género, si es shiny, la letra de los unowns... Todas cosas aleatorias, de ahí que el valor de la personalidad sea aleatorio.
Además, la personalidad forma parte de la clave de encriptación mediante la que se protegen los datos del pokémon, alterarla de forma irregular degeneraría en un "Bad Egg".
Para hacerlo con un givepokemon, es relativamente fácil con una rutina ASM. Pero para los pokémon salvajes, tendrías que alterar el sistema original del juego, que, sumado a los varios inconvenientes que se me ocurren ahora mismo, no es precisamente fácil.
-------------------------------------
Muevo el tema a Dudas de Rom Hacking. Está entre una duda y un pedido, pero definitivamente no va en gráficas. Intenta posicionar mejor tus temas en el futuro.