Untuk bisa menjawab pertanyaan di atas dengan benar, kita perlu memahami penggunaan "a lot of", "many" dan "much" terlebih dulu.
"Many" diikuti dengan "plural countable nouns" (kata benda yang bisa dihitung berjumah banyak) sedangkan "much" diikuti dengan "plural uncountable nouns" (kata benda yang tidak bisa dihitung berjumlah satu). Baik "many" maupun "much" bisa digunakan untuk kalimat negatif maupun tanya.
Dalam kalimat afirmatif, "many" dan "much" digunakan untuk gaya bahasa formal sedangkan "a lot of" digunakan untuk gaya bahasa tidak formal.
"A lot of" adalah bentuk tidak formal dari "many" dan "much", yang artinya bisa diikuti oleh "countable nouns" dan "uncountable noun". Selain kalimat afirmatif, "a lot of" juga bisa digunakan untuk kalimat negatif maupun tanya.
Dengan demikian, secara garis besar perbedaan penggunaan "many", "much" dan "a lot of" terletak pada formal atau tidaknya konteks pembicaraan.
Kata benda "rice" pada soal adalah benda yang tidak bisa dihitung (uncountable noun). Kalimat soal di atas adalah kalimat afirmatif tidak formal. Berdasarkan penjelasan di atas, kita bisa menggunakan "a lot of" dan "much" secara bergantian. Apabila dilengkapi, kalimat tersebut akan berbunyi "Diana has a lot of rice, but Eva doesn't have much rice."
Jadi, jawaban yang tepat adalah "a lot of" dan "much".