That is to say, I guess you could start with a corpus of simple single-stage LC filter blocks that are known-optimal for the cutoff and phase response you want with the standard component values you have available, then you generate populations of chains of them to get the requisite number of stages, only fiddle with the values of one of the stages at a time, and rank your fiddling as as to how much "value" it provides towards the desired solution.
The fiddles that give the best bang-for-the-buck are pooled into a new corpus of possible building blocks to draw new trial solutions from.
The state-space of any non-trivial filter is simply too large to search directly without some kind of heuristic.