I am hoping this process is possible. Similar approaches I have seen discussed here assume that all contacts are already in D365 before uploading and creating promo code records in a custom entity.
1. Generate large list of unique promo codes from external system.
2. Upload codes into custom Promo Code entity.
3. Customer makes action on website and is added to marketing list. They could be new or returning customer.
4. D365 marketing journey sends automatic welcome email, and uses first Promo Code record, and marks it as delivered some way.
5. Subsequent customers making action receive email with next un-delivered promo code.
Thank you for considering this question.