I would start by flooding the grid as you did.
then randomly make some rooms that have a random size (this means they could potentially into each other... but that shouldnt matter really).

Now you switch the last 2 steps.
since you just created the rooms, you know the edges of them.
You can create secret walls and doors based on that (maybe even secret rooms in this step). and once you know all this, link up all the rooms by making hallways (take the closest doors, and calculate the path between these every time).

Then add random enemies and pickups on random white spots.


Formerly known as dennis_fantasy
Portfolio - http://www.designorhea.com/
Project - http://randomchance.cherrygames.org/