bpo-38881: choices() raises ValueError when all weights are zero (GH-17362)

diff --git a/Doc/library/random.rst b/Doc/library/random.rst
index 1bd1856..933da3f 100644
--- a/Doc/library/random.rst
+++ b/Doc/library/random.rst
@@ -165,8 +165,9 @@
 
    The *weights* or *cum_weights* can use any numeric type that interoperates
    with the :class:`float` values returned by :func:`random` (that includes
-   integers, floats, and fractions but excludes decimals).  Weights are
-   assumed to be non-negative.
+   integers, floats, and fractions but excludes decimals).  Behavior is
+   undefined if any weight is negative.  A :exc:`ValueError` is raised if all
+   weights are zero.
 
    For a given seed, the :func:`choices` function with equal weighting
    typically produces a different sequence than repeated calls to
@@ -177,6 +178,9 @@
 
    .. versionadded:: 3.6
 
+   .. versionchanged:: 3.9
+      Raises a :exc:`ValueError` if all weights are zero.
+
 
 .. function:: shuffle(x[, random])