Finally. I narrowed the cause (or rather the solution, because I'm not entirely sure what the causereally is). The secret was in this line that mrcgkh used while debugging:
For some reason "printing" all the values of the JSON object before removing the next random item prevents the item from repeating. I'm not sure if the object restructures itself or something but the only thing I did (after testing a while every change in mrcgkh's version) was to add this Text and just "print" all the items there. That solved the problem. I noticed however, that everytime an item is removed from the JSON object, it "gets the value" of 0 and it's position on the array is now last.
Another thing I realized while debugging was that the problem ocurred always that de next random index was equal to the previous selected random index.
I would really aprettiate it if someone that understands why this happens could explain, because I'll be using Construct a lot this year and I could really use a deep understanding in this type of things in the engine.
Thanks a lot guys!
Special thanks to mrcgkh for contributing :)
For anyone interested in testing the "solution" of the original sample project, here is a copy with that simple modification mentioned above, the only difference is a Text object with id="fix" that prints the values of the JSON (feels more like a hack): dropbox.com/s/y2221fnwznf1d95/RandomJSON%28fixed%29.c3p