Se vuoi essere più ordinato ed evitare il secondo ciclo...
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>

void funzione(int);
bool check(int v, int *a, int l);

int main() {
    int A[17];
    int i;
    srand(time(0));
    for(i=0;i<17;i++) {
        A[i] = rand() % 17 + 1;
        if(check(A[i], A, i)) {
            i--;
            continue;
        }
        funzione(A[i]);
    }
    return 0;
}

void funzione(int a) {
    printf("funzione: %d\n", a);
}

bool check(int v, int *a, int l) {
    int i;
    for (i=0;i<l;i++)
            if (v == a[i])
                return true;
    return false;
}
In alternativa puoi anche usare un goto, ma dato che hai già problemi con queste strutture te lo sconsiglio vivamente.