I guess there are a number of ways to do it.
As a crude example, one thing I do is have a page with all of the mailing list, each name with a check box, with a facility to select the whole list, one or more groups of names, or names individually.
The selected names are then used as a filter for the recordset, and the recordset array is used to update the mailchimp list.
I then create the campaign using the list.
There are also ways to create static lists in mailchimp, but it isn't something I have looked into in much detail
I dare say you could do the same sort of thing with a search page, it just hasn't been a requirement for me
Don't know if that helps, maybe i'll look into it if I get a chance