Eu resolveria esse problema com duas passagens dos diagramas de Voronoi:
Primeira passagem: particionamento de região
A primeira passagem usaria uma distribuição um pouco esparsa de pontos (ou seja, a distância entre os pontos deve ser relativamente grande) para dividir aproximadamente a ilha em regiões (veja a nota abaixo sobre a geração de pontos). Em seguida, gere um diagrama Voronoi com base nesses pontos. Isso dividirá a ilha em regiões poligonais em torno de cada ponto, como mostrado abaixo:
Segunda passagem: randomização de borda
Agora que a ilha foi dividida em regiões, o próximo passo é 'aproximar' os limites entre elas. Para fazer isso, gere uma nova camada de pontos usando uma distribuição mais compacta de pontos (ou seja, a distância entre os pontos deve ser pequena) e use novamente esses pontos para criar outro diagrama de Voronoi. Em seguida, para cada região menor, atribua-a a uma região maior, verificando seu ponto de 'semente'. Isso resultará em limites mais irregulares entre as subdivisões maiores. Aqui está um close do que parece com os dois diagramas de Voronoi:
E aqui está a mesma área mostrando apenas os limites finais:
Comentários sobre Point Generation
Em relação à geração de pontos, eu gosto de usar uma distribuição de discos Poisson para obter uma distribuição relativamente agradável e uniforme de pontos. A outra opção comum é obter uma distribuição igualmente uniforme é usar o algoritmo de Lloyd em um conjunto de pontos aleatórios 'regulares'. O LLoyd's é mais fácil de codificar, mas pode levar algumas tentativas e erros para determinar quantas passagens são necessárias para obter o resultado desejado.
Um problema potencial com essa abordagem é que o particionamento da primeira passagem pode gerar algumas regiões muito pequenas. Se você não os quiser no resultado final, eu simplesmente os fundirei com uma região adjacente aleatória.
Notas Finais
As ilustrações que forneci são imagens rasterizadas, mas essa técnica também funciona com representações poligonais / vetoriais.