I think the general idea is to create rules which allow or deny certain aspects to be created. Meaning you will need variables to use as ID's for each specific element. (A tree, a block of dirt, grass, ect.) So, you will use RND, but then you need to use your rules to determine what can/will be placed next to it. On a grid that will be either 4 sides, or 8 including adjacent tiles.