I was trying out diamond squares and got the attached picture. Runtime was REALLY long, think I may have a bug somewhere, but it is another terrain algorithm you may be interested in. Just make different height ranges into water, shore, plains, grass, moutains, and so forth.
Here is something I got with midpoint displacement. Still buggy and slow. Random midpoint were crashing on me and think I evaluate the same pixel multiple times. But it is pretty