How do I create a ‘selection’ criteria list’ that will then dictate which posts are generated when the user presses search?

Your terminology is a little off. Search implies providing a search word of phrase and receiving matched when it is found in content.

What you describe is commonly called filters or facets (sometimes faceted search).

Implementing it would depend on your exact data architecture. You might use custom taxonomies, but really there aren’t details in your question to guess about that.

There are some plugins that implement faceting, but none that I have used myself.

Overall you need:
– more research on how your data will be structured;
– more research on how faceting will be implemented for it.

No quick answer possible here.