rand@a is just rand(@a) without the optional (). @ can't be part of the word beginning "rand", because it isn't a valid identifier character, so it's treated as a new token. The int() isn't necessary since
array elements are automatically int'd (e.g. $a[3.14] automatically gets you $a[3]).