import System.Random
f::Int->IO[Integer]
f n=take n.randomRs(0,4^64-1)<$>getStdGen
Try it online!
Note that this returns a new set of random values every run, not every call! If we call the function twice without restarting our application, we won't update getStdGen so we will get the same values again.
This can be demonstrated by running:
main = do
l <- f 1
r <- f 1
print $ l ++ r
This will print [x,y] where x==y.
For something more practical (at 135 bytes):
import System.Random
h::StdGen->[(Integer,StdGen)]
h g|(v,r)<-randomR(0,4^64-1)g=(v,r):h r
f n=pure.((,)<$>map fst<*>snd.last).take n.h
Try it online!
This takes a generator and returns the new one, allowing it to be used more than once per run.
f is of type f::Int->StdGen->IO([Integer],StdGen) here.