As already suggested in this thread, to achieve this level of random access, without compromising such ammount of CPU and memory, you should use a Redis Data Set, from JMeter-Plugins.
Another possible solution (will use as much memory as the size of your data set) is to put all your data in one line and have the first row be the variables name list. Use a sequencial value in variable names and use JMeter's random function to determine the group of variables you'll use. Ex.: CSV name1,value1,name2,value2,name3,value3 aaa,BBB,ccc,ddd,EEE,fff
