Just wondering if anyone could point me in the right direction here?

I would like to write a program that autogenerates and island kinda like the picture above, players can walk on the top of the islands so it would need to be smoother but the bottem doesnt have to be other then modelling these how would I go about autogenerating them. I thought about two landscapes one flipped upside down but that looks kinda retarded.

I would like to write a program that autogenerates and island kinda like the picture above, players can walk on the top of the islands so it would need to be smoother but the bottem doesnt have to be other then modelling these how would I go about autogenerating them. I thought about two landscapes one flipped upside down but that looks kinda retarded.