We present Polaris, a concurrent separation logic with support for probabilistic reasoning. As part of our logic, we extend the idea of coupling, which underlies recent work on probabilistic relational logics, to the setting of programs with both probabilistic and non-deterministic choice. To demonstrate Polaris, we verify a variant of a randomized concurrent counter algorithm and a two-level concurrent skip list. All of our results have been mechanized in Coq.1 Of course, a real scheduler is unlikely to behave in such an adversarial way. However, if the timing of operations can depend on random values, effects like this can arise even with non-adversarial schedulers, as discussed in §5. 2 However, it requires O (log 2 (n)) bits to store the count. Nevertheless, it uses less space than other alternatives for decreasing contention (e.g., having each thread maintain its own local counter).