For each version of your application that you submit to the app store, you can create 50 promotional codes that can be redeemed in iTunes
Note: promotional codes expire after 30 days. I usually only generate 10 at a time, saving them safely stored in a text file with the date of generation and deleting them after sending them to the user.
To create promotional codes:
1) In iTunes Connect, click "Manage Your Applications"

2) Click the app

3) Click "View Details"

4) Click "Promotional Codes"

For my Mac storage application, I only have the assembly build code signed (and isolated from the sandbox). Debug builds are not signed / non-isolated codes and have "Beta" attached to the package identifier (thus eliminating problems with non-sandbox and sandbox versions of the same package identifier). Then I can quickly give out beta testing to testers.
source share