Escrevi algo semelhante ao que você está procurando para um clone do Civilization 1. estilo protetor de tela automatizado. Para registro, escrevi isso em VB.net, mas como você não mencionou nada sobre linguagem ou plataforma em sua pergunta, vou manter é abstrato.
O "mapa" especifica o número de continentes, a variância do tamanho do continente (por exemplo, 1,0 manteria todos os continentes com a mesma área de terra aproximada, até 0,1 permitiria que os continentes existissem com 1/10 da massa do maior continente), área máxima de terra (como uma porcentagem) para gerar, e o viés central da terra. Uma "semente" é distribuída aleatoriamente ao redor do mapa para cada continente, ponderada em direção ao centro do mapa de acordo com o viés central (por exemplo, um viés baixo produz continentes distribuídos mais semelhantes à Terra, onde como um viés central alto se parecerá mais com um Pangea). Então, para cada iteração de crescimento, as "sementes" atribuem blocos de terreno de acordo com um algoritmo de distribuição (mais sobre isso mais tarde) até que uma área de terreno máxima seja atingida.
O algoritmo de distribuição de terras pode ser tão preciso quanto você quiser, mas encontrei resultados mais interessantes aplicando vários algoritmos genéticos e jogando os dados. O "Jogo da Vida" de Conway é realmente fácil de começar. Você precisará adicionar ALGUMA lógica globalmente ciente para evitar coisas como continentes crescendo uns nos outros, mas na maioria das vezes as coisas cuidam de si mesmas. O problema que encontrei com abordagens mais baseadas em fractais (que foi minha primeira inclinação) foi que os resultados pareciam muito padronizados ou levavam a muitos cenários que exigiam regras de solução alternativa parecidas com hacky para obter um resultado que ainda não parecia dinâmico o suficiente. Dependendo do algoritmo que você usa, você pode querer aplicar uma passagem de "desfoque" sobre o resultado para eliminar coisas como ladrilhos oceânicos de um único quadrado abundantes e linhas costeiras quadriculadas. No caso de algo como um continente sendo gerado cercado por vários outros e sem nenhum lugar para crescer, realoque a semente para um novo ponto no mapa e continue as passagens de crescimento. Sim, pode significar que às vezes você acaba com mais continentes do que o planejado, mas se for realmente algo que você não deseja firmemente, então outra maneira de ajudar a evitar é enviesar os algoritmos de crescimento para que favoreçam o crescimento na direção com menos proximidade de outras sementes. Na pior das hipóteses (pelo menos na minha opinião), você pode sinalizar uma série como inválida quando uma semente não sobrou nenhum lugar para crescer e gerar um novo mapa. Apenas certifique-se de definir um número máximo de tentativas para que se algo irrealista for especificado (como encaixar 50 continentes de peso igual em uma placa de 10x10) não perca a eternidade tentando encontrar uma solução válida.
Não posso garantir como o Civ etc. faz isso e, claro, não cobre coisas como clima, idade da terra, etc., mas brincando com o algoritmo de crescimento de sementes você pode obter resultados muito interessantes que lembram continentes, arquipélagos etc. use a mesma abordagem para produzir rios, cadeias de montanhas, etc. de aparência 'orgânica' também.