I think everything in Construct should be 1-based index. 0-based makes sense in low-level programming, but for Construct, it's just more intuitive to have everything 1-based.
I think it's worth seriously considering making Random() return 1-N instead of 0-(N-1) for the same reasons. However I can imagine that breaking a lot of stuff. What do you think?
Also, I thought LoopIndex was 1-based already - if you find anything like that which is 0-based, report it as a bug and I'll correct it back to 1-based.