You can design a Google form with this functionality directly in the form. Use a multiple choice grid with options "require 1 response per row" and "limit to one response per column". Example.
This would work better for a poll with fewer options; the fixed width of Google Forms is an issue here. Unfortunately, this issue will only get worse with
new Google forms: example.
Otherwise, there is no way to enforce distinct answers to separate questions within a form. You can use a script to detect duplicates in your data (if it goes to a spreadsheet), but this would happen after the form is already submitted, i.e., too late.
- For this type of survey you'd be better off on another platform. E.g., SurveyMonkey offers ranking questions where users reorder the given options (possibly with drag-and-drop). This is a more natural thing to do than being asked about 1st, 2nd, 3rd... and realizing by the end of selection that you overlooked an option you actually like a lot and now you have to redo all the previous selections. With SurveyMonkey you'd simply take that option and drag it to the top.
- Choosing and ranking 15 items is a lot of work, and you're going to get a lot of noise in your data from people who will be too tired to think much about their replies.