Reduce the allocation to zero

sum(rand(5)) is equivalent to sum(_ -> rand(), 1:5) so your code is equivalent to the following code which uses no arrays:

sumrand(n) = sum(_ -> rand(), 1:n)
acl = sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) 

which is allocation-free:

julia> using BenchmarkTools

julia> @btime acl = sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand()) + sumrand(5) * (rand() - rand());
  68.299 ns (0 allocations: 0 bytes)

You could even do

acl = sum(_ -> sumrand(5) * (rand() - rand()), 1:5)

This will show allocations, but only because it is in global scope; in a function it will be allocation-free a well:

julia> f(n, m) = sum(_ -> sumrand(m) * (rand() - rand()), 1:n)
f (generic function with 1 method)

julia> @btime f(5,5);
  102.041 ns (0 allocations: 0 bytes)