Suffit de faire deux random : un pour l'île (moins les capital éventuellement), puis un pour la case de l'île.
Après le problème a toujours été qu'on n'a pas de relation numéro de case <-> île... Suffit de considérer que les îles sont des gros rectangles, on entre les coordonnées de deux points extrêmes et ça nous donne un range de coordonnées a priori de cases de l'îles. Toutes ne le sont pas mais ce n'est pas grave : il suffit de faire une boucle sur le random jusqu'à ce qu'on obtienne une case sur laquelle on peut placer un joueur.
Je reviens là-dessus car j'avais eu la même idée il y a... pfiouuu...
Comment est définie la zone de respawn des monstres ? Car chacun est sur une île bien précise... Donc ces fameux "rectangles" existent déjà quelque part, il suffirait de transposer le principe à l'aléaporteur.
Pour la question des royaumes et capitales, ça donne un peu plus de boulot, donc dans un premier temps on peut tout à fait se contenter d'un aléatoire simple :
Aléatoire 1 : l'île ("le rectangle").
Aléatoire 2 : une case marchable.
Mel ? Hiri ?