'random' is just a variable. Naming it 'random' doesn't actually make it random. You might as well name it 'popscicle'. The name makes no difference. What matters is what you do with it.
Your 'rand_func' function actually does produce a random number. But you're only calling it once in main.
Also, like Athar said, you never call srand (which you need to do to seed rand), which would explain why it prints the same thing every time.
Call srand once and only once when main starts:
1 2 3 4 5 6
int main()
{
srand( (unsigned)time(0) ); // call srand once with the time
// now rand is properly seeded and will produce difference sequences each time the program
// is run