How to create a directory of event participants with custom fields?
Assuming the 'someone' that needs to access the information is an administrator then you could set up a report to do this using 'Reports > Event reports > Event participants list. In the 'Columns' you can select the fields (including standard and custom fields) to display. In the 'Filter's you can specify which events to display participants for - which is something that your admins can change.

The documentation for using the reports for CiviEvents can be found here:
https://docs.civicrm.org/user/en/stable/events/reports/

This is an approach that's built in to Civi. But there are of course other solutions, such as using Drupal's Views module to expose the information (as suggested in the comments). This could be useful if you wanted to expose the information to end users.