I don't know if it applies to your situation but it's useful to remember that, from a statistical point of view, a (reasonably large) random sample is best, even if it is sometimes difficult to obtain in practice.
In fact, more complex techniques (quotas, screeners, etc.) have been developed to deal with specific problems (sampling smaller sub-populations, bias in the sampling process that make an actual random sample impossible, etc.) but if you have a full list of all potential users from which you can pick up names randomly (which also mean they have to be equally likely to accept to talk to you…) and your sample is large enough, you don't need to worry about representativeness.
One way to do it is to put your list in a table or database and order it or otherwise give each potential interviewee a number (any order will do as long as you don't change it during the procedure). Then go to http://www.random.org/integer-sets/ and generate one set with N (your desired sample size) integers between 1 and the total number in your list. You can then use the results as id number/position in the list to pick people.