Natural selection is pretty much the opposite of heuristic. Complex adaptive systems embodied in self replicating chemical nanobots create random variation when they replicate. The varieties that can't reproduce or not as efficiently are dead ends. There is no teleology, and conditions change in non linear ways. There is no final condition, or any meaningful way to infer a better pathway in advance.
Evolution by natural selection is literally just biochemistry brute forcing survival.
Natural selection constrains the possible variation for each iteration so only a miniscule subset of possibilities is explored. That doesn't sound very brute-forcey to me.
It's not the selection that pose constraints. The random variation that occurs in the replication is going towards all possible adjacent possibilities spaces, by definition. Selection occurs only after this brute force, blind branching towards anything that can be changed at that stage.
Evolution by natural selection is literally just biochemistry brute forcing survival.