Suppose I have a sequence of numbers: {n, n+1, n+2, ... n + m}
Without storing the numbers ahead of time I want to create a function f(), which given the sequence {1,2,3
If you want a 1:1 mapping, go with Fisher-Yates as mentioned in the other answers.
If you don't care about 1:1 mapping, and you just need all of the resulting values to be from the given sequence (with the possibility of repeats), then you can use a random function with a specified range.
For example, in C++, you could use rand() in the following way -
result = rand() % (m+1) + n
So for your example,
result = rand() % 8 + 10
Would produce an integer between 10 and 17.