I am writing a code that is supposed to act as a lottery. The lottery numbers available are 1-50, and there are 10 of them. The user is supposed to input one number and the program returns if the user's number matches one of the 10 random lottery numbers. I have gotten all of these parts down, but there is one problem; all 10 of the lottery numbers must be unique. I have gotten 10 unique numbers 1-50, but they weren't very random. The code I have written up to this point seems correct to me, except I know there is something missing (along with the fact that I can clean my code up a lot, but I'm focusing on the objective right now). Right now if I run the program it will return ten zeroes. I need each element in the lottery array to be a unique number from 1-50, and produce different sets of numbers each time i run the program. Any help would be appreciated.
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using std::cout; using std::cin; using std::endl;
void printOut(int[]);
void draw(int[]);
bool check();
int fillFunc[10];
int main()
{
    const int arraySize = 10;
    int win[arraySize] = {};
    srand((unsigned)time(NULL));
    draw(win);
    cout << "Your lottery numbers are: ";
    printOut(win);
}
void draw(int fillFunc[])
{
    int i;
    for (i = 0; i < 10; i++)
    {
        if (check() == true)
            continue;
        fillFunc[i] = 1 + rand() % 50;
    }
}
void printOut(int fillFunc[])
{
    for (int i = 0; i < 10; i++)
    {
        cout << " " << fillFunc[i];
    }
    cout << "\n";
}
bool check()
{
    for (int i = 0; i < 10; ++i)
    {
        if (fillFunc[i] == i)
            return true;
    }
    return false;
}
(also don't ask me why the array has the name "win", this is what my prof wants me to call it)
 
     
     
     
     
    