Ideas are not just natural selection. People do not design computers by randomly messing with transistors of their last version. People do not change computer programs by randomly altering lines of code. It would not work in any feasible time period.
There are things that you can design that way. There are things where that's the best way we know how to design them. That's why genetic algorithms are sometimes very useful. Not everything is like that. That's why we don't use genetic algorithms for everything.
Also, the lack of innovation he talks about seems to be largely that we're not reinventing the wheel. If there's nothing to stop you from stealing ideas, then there won't be sufficient innovation, but that's what we have intellectual property rights for.
Well, I don't know how other programmers do things, but what I do is I create models at various levels of abstractions, and play with those models until it occurs to me what ought to happen next. Like, I draw on the whiteboard with someone, and we generate all the known solutions we have and usually a known solution or pattern just needs to be adapted. So we're copying. Often, the adaptions aren't immediately obvious when you go down a couple levels and start actually coding it, and so I play around with a couple of different ideas, or maybe I'm guided by ...
http://edge.org/conversation/infinite-stupidity-edge-conversation-with-mark-pagel
Random change, then a selection, says Mark Pagel. As I agree, here's the link.