Add custom field and populated with array/data from a non-civicrm table
You can do this in a few ways:

If the legacy table is static, just move the data across into a custom field select option. You'll be happier when it's done. You can do this with a SQL command if there are a lot of options.

If the data in the legacy system is changing, there are two few ways:
A) Create MySQL triggers to update the values,
B) Create a batch script to update the options in Civi from the table,