Just FYI. I used the Rand instead of the Rnd function and still after generating the data file I got a " " space embedded in the text.
I then went to implicitly force the lower bound of 1, although the docs mention that its supposed to be done by the system, and thus far there are no " " spaces being generated by a random (pardon the pun) NULL or 0 (Zero).

Technically your graphics card should play a role as Windows needs to map some of your address space to video memory (so the bigger your card the less ram you have). But this only affects 32-bit systems.

Otherwise your allowed to go up to around 3gb, regardless of your ram and CPU (thanks to virtual memory).

Try using data banks, they might allow you to store more memory. It might be that BB's internal usage or arrays is more expensive then it needs to be and so is using tonnes of memory. However an array of 1000000 ints should only be using around 3.8mb, which is pitiful.

Also AFAIK the language of Blitz2D and Blitz3D is identical (including it's implementation). It's only the libraries which differ (obviously the fact that BB3D has a 3D library).