fix random expr being evaluated multiple times bug and the wrong tile_shape bug in distarray