I think I figured it out. I spent an enormous amount of time yesterday and today cataloging winning number sets. The number generation doesn't appear to have a set pattern, and is pseudo-random. Pseudo-random number generators (PRNG) do a very good job of being unpredictable. It's probably a Yarrow algorithm, given how old the game is. If not, then it's a Fortuna algorithm, which is newer. @(you need an account to see links), you could try making the bot with one of these algorithms and test it on a shell, and see if it works. If one of them does, then we not only know what algorithm the game uses, but a way to possibly predict the numbers to win. It may seem like a daunting task, but even the lottery is predictable, and it uses a PRNG.
I think this might be using a multiply with carry computation, also: (I admit I had to look this up on wikipedia)
m_w = <choose-initializer>; /* must not be zero, nor 0x464fffff */
m_z = <choose-initializer>; /* must not be zero, nor 0x9068ffff */
uint get_random()
{
m_z = 36969 * (m_z & 65535) + (m_z >> 16);
m_w = 18000 * (m_w & 65535) + (m_w >> 16);
return (m_z << 16) + m_w; /* 32-bit result */
}