Like you mention there are really two ways of going about it.
For both ways, you'll want to populate a select dropdown with the value of an individual option being the category name you want to filter by.
The first way you could do it is loading all of the people entries onto the page. Using craft tags spit out all of your people onto the page, and make sure you're giving each "person" an attribute (or class) that lets you show/hide them based on their category
eg:
<div class="person" data-category="{{ entry.categoryName }}">
<h3>Persons Name</h3>
</div>
Within your javascript code, write an event handler that will fire when you change the select dropdown, and then show/hide the people based on the value selected:
$(".people-category-dropdown").change(function(){
var categoryName = $(this).val();
$(".person").hide();
$(".person").is("[data-category='"+ categoryName +"']").show();
});
The second way of doing it is to initially only load one category of people onto the page, and when someone updates the dropdown, fire off an ajax request that fetches all of the people from that category. When that response is sent back, swap out all the old people with the new ones.
Those code examples above are by no means all the code you'll need to get things implemented, but hopefully that at least points you in the right direction!