Pourquoi rand() aboutissent à la même séquence de nombres sur chaque course?

Chaque fois que je lance un programme avec rand() il me donne les mêmes résultats.

Exemple :

#include <iostream>
#include <cstdlib>

using namespace std;

int random (int low, int high) {
    if (low > high) return high;
    return low + (rand() % (high - low + 1));
}
int main (int argc, char* argv []) {
    for (int i = 0; i < 5; i++) cout << random (2, 5) << endl;
}

De sortie :

3
5
4
2
3

Chaque fois que je lance le programme, il affiche le même nombre à chaque fois. Est-il un moyen de contourner cela?