This is how it's done. Note that geneSize is not defined here, but I assume you'll take care of that.
MODULE test
USE IFPORT
INTERFACE getRandom
MODULE PROCEDURE getRandomA
MODULE PROCEDURE getRandomB
MODULE PROCEDURE getRandomC
END INTERFACE
CONTAINS
INTEGER FUNCTION getRandomA()
IMPLICIT NONE
getRandomA = MOD( IRAND(), geneSize-1 ) + 1 ! GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION
INTEGER FUNCTION getRandomB(max)
IMPLICIT NONE
INTEGER, INTENT(IN) :: max
getRandomB = MOD( IRAND(), geneSize-1 ) + 1 ! GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION
INTEGER FUNCTION getRandomC(min, max)
IMPLICIT NONE
INTEGER, INTENT(IN) :: min, max
getRandomC = MOD( IRAND(), geneSize-1 ) + 1 ! GENERATE RANDOM FROM 1 TO geneSize-1
END FUNCTION
END MODULE