See the API for AlertDialog:
http://developer.android.com/reference/android/app/AlertDialog.html
In the API is a link to an API Guide which explains more. The AlertDialog can be used to show a List of things, and exposes a ListView. Which means you can provide what you want to the ListView. See
http://developer.android.com/guide/topics/ui/layout/listview.html for a guide on how to use them. The only difference here is you would not be creating a new ListView, you would be getting the one AlertDialog provides.
As for playing a ringtone in an alert dialog - yes, see
http://developer.android.com/reference/android/media/RingtoneManager.html and
http://developer.android.com/reference/android/media/Ringtone.html, the first has a static method to get the Ringtone, which you then use to play. You can do this from the event method that opens the dialog or in the click events triggered when you select an item in the list. If your intent is to make a tool to let users select a Ringtone, you might consider looking up the Ringtone Picker (you can call it using an intent to the RingtoneManager.ACTION_RINGTONE_PICKER uri, it will show a standard dialog picker and provide results. There are numerous examples around the web including how to add your own ringtones to the list and how to store the selected result as the default ringer...)