基本的に変数は少ないほうが良いから、こういう場合は変数を減らす方法について調べてみるといいかな。
`(0..19).map {|i| ["#{i}個", i] }` はちょっと発想の切り替えが必要だと思うけど、`20.times do |i|` の書き方は `times` メソッドについて調べていればかけたと思う。
Ruby の場合、簡単そうなメソッドでも意外と便利な使い方があるから、思い込みをせずに調べる習慣をつけるといいかな。