Eu entendi que ele esta usando uma função random para escolher uma palavra aleatório do arquivo de texto, mas não entendi como esse trecho de código faz isso.
  srand(time(0));
    int random = rand() % words;
    for (int i = 0; i <= random; i++) {
        fscanf(f, "%s", palavrasecreta);Entendo que words é a primeira linha do arquivo de texto e ele serve para dizer quantas palavras tem no arquivo de texto.  Mas não entendi o srand(), o time(0) nem o rand(), alguém poderia, por favor, me explicar melhor como essas funções funcionam e como elas estão ai trabalhando juntas para fazer essa parte do código funcionar? 
Colocarei a função word() completa abaixo caso seja necessário para explicação:
void word() {
    FILE* f;
    f = fopen("words.txt", "r");
    int words;
    fscanf(f, "%d", &words);
    srand(time(0));
    int random = rand() % words;
    for (int i = 0; i <= random; i++) {
        fscanf(f, "%s", palavrasecreta);
    }
    fclose(f);
} 
             
             
            